AI in Industry (Brain Tumor segmentation)¶

According to the definition of industry as any activity that generates value, the medical field is considered one of the most important and vital industries. With the help of AI, many processes from diagnosis to treatment can be automated to improve speed and efficiency.

No description has been provided for this image

AI plays a crucial role in this field in several ways, such as:

  1. Medical Imaging and Diagnostics :
  1. Predictive Analytics
  1. Robotic Surgery
  1. Virtual Health Assistants

AI-driven robotic systems assist surgeons in performing precise and minimally invasive procedures

AI systems analyze patient data to predict disease progression, treatment responses, or risk of complications.

AI algorithms can analyze medical images (e.g., X-rays, MRIs) to detect abnormalities like tumors or fractures with high accuracy.

AI chatbots and virtual assistants help patients with scheduling, medication reminders, and answering basic health queries.

BraTS-Lighthouse 2025 Challenge¶

Refer to the BraTS Challenge for more information about the 2025 competition.

image.png

Requirements.txt¶

kagglehub
tensorflow
numpy
pandas
matplotlib.pyplot
sklearn
nibabel
skimage
random
os
cv2
glob

In [ ]:
# Connecting Google drive to colab file
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
In [ ]:
# import libraries
import warnings
warnings.filterwarnings("ignore", category=ImportWarning)

import kagglehub
import os
import shutil
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
import pandas as pd
import cv2
from sklearn.preprocessing import MinMaxScaler
from skimage.transform import rotate
from skimage.util import montage
import nibabel as nib
import tensorflow as tf
from tensorflow import keras
import tensorflow.keras.backend as K
from tensorflow.keras.layers import Conv2D, MaxPooling2D, UpSampling2D, Dropout, concatenate, Input, BatchNormalization, Add, Activation
from tensorflow.keras.models import Model, load_model
from tensorflow.keras.utils import plot_model
from tensorflow.keras.callbacks import ReduceLROnPlateau, ModelCheckpoint, CSVLogger
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.metrics import MeanIoU
import glob
import random
import matplotlib.colors as mcolors

Exploring Database (BraTS2020 Dataset)¶

No description has been provided for this image

The dataset contains 3D MRI images in NIfTI format (.nii.gz). Each patient record includes four MRI modalities and one segmentation mask:

T1: Native Scan

T1ce: Contrast-Enhanced T1 Scan

T2: T2-Weighted Scan

FLAIR: Fluid-Attenuated Inversion Recovery Scan

Segmentation masks represent labeled regions as follows:

0: Background (no tumor)

1: Non-Enhancing Tumor Core

2: Peritumoral Edema (swelling around the tumor)

3: Missing label

4: Enhancing Tumor

Explore BraTS2020 Dataset on Kaggle for more detailed data.

In [ ]:
# Load dataset from Kagglehub
path = kagglehub.dataset_download("awsaf49/brats20-dataset-training-validation")

print("Path to dataset files:", path)
Path to dataset files: /kaggle/input/brats20-dataset-training-validation
In [ ]:
# Find out about structure of dataset
for root, dirs, files in os.walk(path):
    print(f"\nDirectory: {root}")
    for f in files:
        print("  ", f)
Directory: /kaggle/input/brats20-dataset-training-validation

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData
   name_mapping_validation_data.csv
   survival_evaluation.csv

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_084
   BraTS20_Validation_084_flair.nii
   BraTS20_Validation_084_t2.nii
   BraTS20_Validation_084_t1ce.nii
   BraTS20_Validation_084_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_118
   BraTS20_Validation_118_t2.nii
   BraTS20_Validation_118_t1.nii
   BraTS20_Validation_118_t1ce.nii
   BraTS20_Validation_118_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_111
   BraTS20_Validation_111_flair.nii
   BraTS20_Validation_111_t2.nii
   BraTS20_Validation_111_t1ce.nii
   BraTS20_Validation_111_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_060
   BraTS20_Validation_060_t2.nii
   BraTS20_Validation_060_t1.nii
   BraTS20_Validation_060_t1ce.nii
   BraTS20_Validation_060_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_034
   BraTS20_Validation_034_t2.nii
   BraTS20_Validation_034_flair.nii
   BraTS20_Validation_034_t1.nii
   BraTS20_Validation_034_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_045
   BraTS20_Validation_045_t1ce.nii
   BraTS20_Validation_045_t2.nii
   BraTS20_Validation_045_flair.nii
   BraTS20_Validation_045_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_027
   BraTS20_Validation_027_t2.nii
   BraTS20_Validation_027_t1.nii
   BraTS20_Validation_027_t1ce.nii
   BraTS20_Validation_027_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_073
   BraTS20_Validation_073_t1.nii
   BraTS20_Validation_073_t2.nii
   BraTS20_Validation_073_flair.nii
   BraTS20_Validation_073_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_014
   BraTS20_Validation_014_flair.nii
   BraTS20_Validation_014_t2.nii
   BraTS20_Validation_014_t1.nii
   BraTS20_Validation_014_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_047
   BraTS20_Validation_047_flair.nii
   BraTS20_Validation_047_t1ce.nii
   BraTS20_Validation_047_t1.nii
   BraTS20_Validation_047_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_096
   BraTS20_Validation_096_flair.nii
   BraTS20_Validation_096_t1ce.nii
   BraTS20_Validation_096_t1.nii
   BraTS20_Validation_096_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_068
   BraTS20_Validation_068_t1ce.nii
   BraTS20_Validation_068_t2.nii
   BraTS20_Validation_068_t1.nii
   BraTS20_Validation_068_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_090
   BraTS20_Validation_090_t1.nii
   BraTS20_Validation_090_flair.nii
   BraTS20_Validation_090_t1ce.nii
   BraTS20_Validation_090_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_038
   BraTS20_Validation_038_flair.nii
   BraTS20_Validation_038_t1.nii
   BraTS20_Validation_038_t2.nii
   BraTS20_Validation_038_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_017
   BraTS20_Validation_017_t2.nii
   BraTS20_Validation_017_flair.nii
   BraTS20_Validation_017_t1ce.nii
   BraTS20_Validation_017_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_069
   BraTS20_Validation_069_t1ce.nii
   BraTS20_Validation_069_t2.nii
   BraTS20_Validation_069_flair.nii
   BraTS20_Validation_069_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_071
   BraTS20_Validation_071_t1.nii
   BraTS20_Validation_071_flair.nii
   BraTS20_Validation_071_t2.nii
   BraTS20_Validation_071_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_092
   BraTS20_Validation_092_t2.nii
   BraTS20_Validation_092_t1.nii
   BraTS20_Validation_092_t1ce.nii
   BraTS20_Validation_092_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_015
   BraTS20_Validation_015_t2.nii
   BraTS20_Validation_015_t1.nii
   BraTS20_Validation_015_flair.nii
   BraTS20_Validation_015_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_117
   BraTS20_Validation_117_flair.nii
   BraTS20_Validation_117_t2.nii
   BraTS20_Validation_117_t1.nii
   BraTS20_Validation_117_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_004
   BraTS20_Validation_004_t1ce.nii
   BraTS20_Validation_004_t1.nii
   BraTS20_Validation_004_flair.nii
   BraTS20_Validation_004_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_103
   BraTS20_Validation_103_t1ce.nii
   BraTS20_Validation_103_t2.nii
   BraTS20_Validation_103_t1.nii
   BraTS20_Validation_103_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_035
   BraTS20_Validation_035_t1ce.nii
   BraTS20_Validation_035_t1.nii
   BraTS20_Validation_035_t2.nii
   BraTS20_Validation_035_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_033
   BraTS20_Validation_033_t1ce.nii
   BraTS20_Validation_033_t1.nii
   BraTS20_Validation_033_t2.nii
   BraTS20_Validation_033_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_021
   BraTS20_Validation_021_t1ce.nii
   BraTS20_Validation_021_flair.nii
   BraTS20_Validation_021_t1.nii
   BraTS20_Validation_021_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_061
   BraTS20_Validation_061_t1ce.nii
   BraTS20_Validation_061_t1.nii
   BraTS20_Validation_061_t2.nii
   BraTS20_Validation_061_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_079
   BraTS20_Validation_079_t2.nii
   BraTS20_Validation_079_flair.nii
   BraTS20_Validation_079_t1.nii
   BraTS20_Validation_079_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_085
   BraTS20_Validation_085_t2.nii
   BraTS20_Validation_085_t1.nii
   BraTS20_Validation_085_t1ce.nii
   BraTS20_Validation_085_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_112
   BraTS20_Validation_112_flair.nii
   BraTS20_Validation_112_t1.nii
   BraTS20_Validation_112_t1ce.nii
   BraTS20_Validation_112_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_065
   BraTS20_Validation_065_t1.nii
   BraTS20_Validation_065_flair.nii
   BraTS20_Validation_065_t1ce.nii
   BraTS20_Validation_065_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_037
   BraTS20_Validation_037_t1ce.nii
   BraTS20_Validation_037_t1.nii
   BraTS20_Validation_037_flair.nii
   BraTS20_Validation_037_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_053
   BraTS20_Validation_053_t1ce.nii
   BraTS20_Validation_053_t2.nii
   BraTS20_Validation_053_t1.nii
   BraTS20_Validation_053_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_005
   BraTS20_Validation_005_flair.nii
   BraTS20_Validation_005_t2.nii
   BraTS20_Validation_005_t1ce.nii
   BraTS20_Validation_005_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_064
   BraTS20_Validation_064_t2.nii
   BraTS20_Validation_064_flair.nii
   BraTS20_Validation_064_t1.nii
   BraTS20_Validation_064_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_091
   BraTS20_Validation_091_t1ce.nii
   BraTS20_Validation_091_flair.nii
   BraTS20_Validation_091_t1.nii
   BraTS20_Validation_091_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_042
   BraTS20_Validation_042_t1.nii
   BraTS20_Validation_042_flair.nii
   BraTS20_Validation_042_t2.nii
   BraTS20_Validation_042_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_078
   BraTS20_Validation_078_t1.nii
   BraTS20_Validation_078_flair.nii
   BraTS20_Validation_078_t2.nii
   BraTS20_Validation_078_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_100
   BraTS20_Validation_100_t2.nii
   BraTS20_Validation_100_t1ce.nii
   BraTS20_Validation_100_t1.nii
   BraTS20_Validation_100_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_019
   BraTS20_Validation_019_t2.nii
   BraTS20_Validation_019_t1.nii
   BraTS20_Validation_019_t1ce.nii
   BraTS20_Validation_019_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_063
   BraTS20_Validation_063_flair.nii
   BraTS20_Validation_063_t1.nii
   BraTS20_Validation_063_t1ce.nii
   BraTS20_Validation_063_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_010
   BraTS20_Validation_010_t1.nii
   BraTS20_Validation_010_t1ce.nii
   BraTS20_Validation_010_t2.nii
   BraTS20_Validation_010_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_081
   BraTS20_Validation_081_flair.nii
   BraTS20_Validation_081_t2.nii
   BraTS20_Validation_081_t1.nii
   BraTS20_Validation_081_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_022
   BraTS20_Validation_022_flair.nii
   BraTS20_Validation_022_t2.nii
   BraTS20_Validation_022_t1ce.nii
   BraTS20_Validation_022_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_043
   BraTS20_Validation_043_t1.nii
   BraTS20_Validation_043_t1ce.nii
   BraTS20_Validation_043_t2.nii
   BraTS20_Validation_043_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_074
   BraTS20_Validation_074_t1ce.nii
   BraTS20_Validation_074_t2.nii
   BraTS20_Validation_074_t1.nii
   BraTS20_Validation_074_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_072
   BraTS20_Validation_072_flair.nii
   BraTS20_Validation_072_t2.nii
   BraTS20_Validation_072_t1ce.nii
   BraTS20_Validation_072_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_094
   BraTS20_Validation_094_flair.nii
   BraTS20_Validation_094_t2.nii
   BraTS20_Validation_094_t1ce.nii
   BraTS20_Validation_094_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_076
   BraTS20_Validation_076_t2.nii
   BraTS20_Validation_076_flair.nii
   BraTS20_Validation_076_t1ce.nii
   BraTS20_Validation_076_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_095
   BraTS20_Validation_095_t1.nii
   BraTS20_Validation_095_flair.nii
   BraTS20_Validation_095_t2.nii
   BraTS20_Validation_095_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_018
   BraTS20_Validation_018_t2.nii
   BraTS20_Validation_018_flair.nii
   BraTS20_Validation_018_t1.nii
   BraTS20_Validation_018_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_056
   BraTS20_Validation_056_t1.nii
   BraTS20_Validation_056_t1ce.nii
   BraTS20_Validation_056_t2.nii
   BraTS20_Validation_056_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_105
   BraTS20_Validation_105_t2.nii
   BraTS20_Validation_105_flair.nii
   BraTS20_Validation_105_t1.nii
   BraTS20_Validation_105_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_121
   BraTS20_Validation_121_t2.nii
   BraTS20_Validation_121_t1.nii
   BraTS20_Validation_121_flair.nii
   BraTS20_Validation_121_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_089
   BraTS20_Validation_089_t1.nii
   BraTS20_Validation_089_flair.nii
   BraTS20_Validation_089_t2.nii
   BraTS20_Validation_089_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_115
   BraTS20_Validation_115_flair.nii
   BraTS20_Validation_115_t1ce.nii
   BraTS20_Validation_115_t1.nii
   BraTS20_Validation_115_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_082
   BraTS20_Validation_082_t2.nii
   BraTS20_Validation_082_flair.nii
   BraTS20_Validation_082_t1ce.nii
   BraTS20_Validation_082_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_011
   BraTS20_Validation_011_t1ce.nii
   BraTS20_Validation_011_t1.nii
   BraTS20_Validation_011_t2.nii
   BraTS20_Validation_011_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_124
   BraTS20_Validation_124_flair.nii
   BraTS20_Validation_124_t2.nii
   BraTS20_Validation_124_t1.nii
   BraTS20_Validation_124_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_098
   BraTS20_Validation_098_flair.nii
   BraTS20_Validation_098_t1.nii
   BraTS20_Validation_098_t2.nii
   BraTS20_Validation_098_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_108
   BraTS20_Validation_108_flair.nii
   BraTS20_Validation_108_t2.nii
   BraTS20_Validation_108_t1ce.nii
   BraTS20_Validation_108_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_110
   BraTS20_Validation_110_t1ce.nii
   BraTS20_Validation_110_t2.nii
   BraTS20_Validation_110_t1.nii
   BraTS20_Validation_110_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_116
   BraTS20_Validation_116_t2.nii
   BraTS20_Validation_116_t1.nii
   BraTS20_Validation_116_flair.nii
   BraTS20_Validation_116_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_036
   BraTS20_Validation_036_flair.nii
   BraTS20_Validation_036_t1.nii
   BraTS20_Validation_036_t1ce.nii
   BraTS20_Validation_036_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_044
   BraTS20_Validation_044_flair.nii
   BraTS20_Validation_044_t1.nii
   BraTS20_Validation_044_t1ce.nii
   BraTS20_Validation_044_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_097
   BraTS20_Validation_097_t2.nii
   BraTS20_Validation_097_flair.nii
   BraTS20_Validation_097_t1ce.nii
   BraTS20_Validation_097_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_102
   BraTS20_Validation_102_t2.nii
   BraTS20_Validation_102_t1.nii
   BraTS20_Validation_102_flair.nii
   BraTS20_Validation_102_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_008
   BraTS20_Validation_008_t2.nii
   BraTS20_Validation_008_t1ce.nii
   BraTS20_Validation_008_t1.nii
   BraTS20_Validation_008_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_040
   BraTS20_Validation_040_t1ce.nii
   BraTS20_Validation_040_t2.nii
   BraTS20_Validation_040_flair.nii
   BraTS20_Validation_040_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_003
   BraTS20_Validation_003_t2.nii
   BraTS20_Validation_003_t1ce.nii
   BraTS20_Validation_003_flair.nii
   BraTS20_Validation_003_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_058
   BraTS20_Validation_058_t1ce.nii
   BraTS20_Validation_058_t1.nii
   BraTS20_Validation_058_t2.nii
   BraTS20_Validation_058_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_119
   BraTS20_Validation_119_t1ce.nii
   BraTS20_Validation_119_t1.nii
   BraTS20_Validation_119_t2.nii
   BraTS20_Validation_119_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_051
   BraTS20_Validation_051_t1.nii
   BraTS20_Validation_051_t1ce.nii
   BraTS20_Validation_051_t2.nii
   BraTS20_Validation_051_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_006
   BraTS20_Validation_006_t2.nii
   BraTS20_Validation_006_flair.nii
   BraTS20_Validation_006_t1.nii
   BraTS20_Validation_006_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_106
   BraTS20_Validation_106_t2.nii
   BraTS20_Validation_106_flair.nii
   BraTS20_Validation_106_t1ce.nii
   BraTS20_Validation_106_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_031
   BraTS20_Validation_031_flair.nii
   BraTS20_Validation_031_t2.nii
   BraTS20_Validation_031_t1.nii
   BraTS20_Validation_031_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_020
   BraTS20_Validation_020_t1ce.nii
   BraTS20_Validation_020_t1.nii
   BraTS20_Validation_020_t2.nii
   BraTS20_Validation_020_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_046
   BraTS20_Validation_046_t2.nii
   BraTS20_Validation_046_t1ce.nii
   BraTS20_Validation_046_t1.nii
   BraTS20_Validation_046_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_054
   BraTS20_Validation_054_flair.nii
   BraTS20_Validation_054_t1.nii
   BraTS20_Validation_054_t1ce.nii
   BraTS20_Validation_054_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_050
   BraTS20_Validation_050_t1ce.nii
   BraTS20_Validation_050_t2.nii
   BraTS20_Validation_050_flair.nii
   BraTS20_Validation_050_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_101
   BraTS20_Validation_101_flair.nii
   BraTS20_Validation_101_t2.nii
   BraTS20_Validation_101_t1ce.nii
   BraTS20_Validation_101_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_109
   BraTS20_Validation_109_t2.nii
   BraTS20_Validation_109_t1ce.nii
   BraTS20_Validation_109_flair.nii
   BraTS20_Validation_109_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_055
   BraTS20_Validation_055_t1.nii
   BraTS20_Validation_055_t2.nii
   BraTS20_Validation_055_t1ce.nii
   BraTS20_Validation_055_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_070
   BraTS20_Validation_070_t2.nii
   BraTS20_Validation_070_t1.nii
   BraTS20_Validation_070_flair.nii
   BraTS20_Validation_070_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_062
   BraTS20_Validation_062_t1.nii
   BraTS20_Validation_062_flair.nii
   BraTS20_Validation_062_t2.nii
   BraTS20_Validation_062_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_028
   BraTS20_Validation_028_t2.nii
   BraTS20_Validation_028_flair.nii
   BraTS20_Validation_028_t1.nii
   BraTS20_Validation_028_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_066
   BraTS20_Validation_066_flair.nii
   BraTS20_Validation_066_t1ce.nii
   BraTS20_Validation_066_t2.nii
   BraTS20_Validation_066_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_049
   BraTS20_Validation_049_t1.nii
   BraTS20_Validation_049_t1ce.nii
   BraTS20_Validation_049_flair.nii
   BraTS20_Validation_049_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_012
   BraTS20_Validation_012_flair.nii
   BraTS20_Validation_012_t2.nii
   BraTS20_Validation_012_t1.nii
   BraTS20_Validation_012_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_016
   BraTS20_Validation_016_t2.nii
   BraTS20_Validation_016_t1.nii
   BraTS20_Validation_016_t1ce.nii
   BraTS20_Validation_016_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_025
   BraTS20_Validation_025_t1.nii
   BraTS20_Validation_025_t2.nii
   BraTS20_Validation_025_flair.nii
   BraTS20_Validation_025_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_059
   BraTS20_Validation_059_t1.nii
   BraTS20_Validation_059_t2.nii
   BraTS20_Validation_059_t1ce.nii
   BraTS20_Validation_059_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_057
   BraTS20_Validation_057_flair.nii
   BraTS20_Validation_057_t1.nii
   BraTS20_Validation_057_t2.nii
   BraTS20_Validation_057_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_002
   BraTS20_Validation_002_flair.nii
   BraTS20_Validation_002_t1.nii
   BraTS20_Validation_002_t2.nii
   BraTS20_Validation_002_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_026
   BraTS20_Validation_026_t2.nii
   BraTS20_Validation_026_t1ce.nii
   BraTS20_Validation_026_flair.nii
   BraTS20_Validation_026_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_007
   BraTS20_Validation_007_t2.nii
   BraTS20_Validation_007_t1ce.nii
   BraTS20_Validation_007_flair.nii
   BraTS20_Validation_007_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_030
   BraTS20_Validation_030_t1ce.nii
   BraTS20_Validation_030_t2.nii
   BraTS20_Validation_030_flair.nii
   BraTS20_Validation_030_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_080
   BraTS20_Validation_080_t1ce.nii
   BraTS20_Validation_080_t2.nii
   BraTS20_Validation_080_flair.nii
   BraTS20_Validation_080_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_009
   BraTS20_Validation_009_t1.nii
   BraTS20_Validation_009_t1ce.nii
   BraTS20_Validation_009_t2.nii
   BraTS20_Validation_009_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_104
   BraTS20_Validation_104_t1ce.nii
   BraTS20_Validation_104_t2.nii
   BraTS20_Validation_104_t1.nii
   BraTS20_Validation_104_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_086
   BraTS20_Validation_086_flair.nii
   BraTS20_Validation_086_t1.nii
   BraTS20_Validation_086_t1ce.nii
   BraTS20_Validation_086_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_013
   BraTS20_Validation_013_t1ce.nii
   BraTS20_Validation_013_t2.nii
   BraTS20_Validation_013_flair.nii
   BraTS20_Validation_013_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_048
   BraTS20_Validation_048_flair.nii
   BraTS20_Validation_048_t2.nii
   BraTS20_Validation_048_t1.nii
   BraTS20_Validation_048_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_039
   BraTS20_Validation_039_flair.nii
   BraTS20_Validation_039_t2.nii
   BraTS20_Validation_039_t1.nii
   BraTS20_Validation_039_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_083
   BraTS20_Validation_083_t2.nii
   BraTS20_Validation_083_t1.nii
   BraTS20_Validation_083_flair.nii
   BraTS20_Validation_083_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_023
   BraTS20_Validation_023_t1.nii
   BraTS20_Validation_023_flair.nii
   BraTS20_Validation_023_t1ce.nii
   BraTS20_Validation_023_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_107
   BraTS20_Validation_107_flair.nii
   BraTS20_Validation_107_t1ce.nii
   BraTS20_Validation_107_t2.nii
   BraTS20_Validation_107_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_099
   BraTS20_Validation_099_flair.nii
   BraTS20_Validation_099_t1ce.nii
   BraTS20_Validation_099_t1.nii
   BraTS20_Validation_099_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_075
   BraTS20_Validation_075_t1ce.nii
   BraTS20_Validation_075_t1.nii
   BraTS20_Validation_075_flair.nii
   BraTS20_Validation_075_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_041
   BraTS20_Validation_041_t1.nii
   BraTS20_Validation_041_t1ce.nii
   BraTS20_Validation_041_t2.nii
   BraTS20_Validation_041_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_114
   BraTS20_Validation_114_t2.nii
   BraTS20_Validation_114_t1.nii
   BraTS20_Validation_114_t1ce.nii
   BraTS20_Validation_114_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_032
   BraTS20_Validation_032_t1ce.nii
   BraTS20_Validation_032_t2.nii
   BraTS20_Validation_032_flair.nii
   BraTS20_Validation_032_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_052
   BraTS20_Validation_052_t1ce.nii
   BraTS20_Validation_052_flair.nii
   BraTS20_Validation_052_t1.nii
   BraTS20_Validation_052_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_029
   BraTS20_Validation_029_t2.nii
   BraTS20_Validation_029_flair.nii
   BraTS20_Validation_029_t1.nii
   BraTS20_Validation_029_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_001
   BraTS20_Validation_001_t2.nii
   BraTS20_Validation_001_t1.nii
   BraTS20_Validation_001_t1ce.nii
   BraTS20_Validation_001_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_122
   BraTS20_Validation_122_flair.nii
   BraTS20_Validation_122_t2.nii
   BraTS20_Validation_122_t1.nii
   BraTS20_Validation_122_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_088
   BraTS20_Validation_088_t1.nii
   BraTS20_Validation_088_flair.nii
   BraTS20_Validation_088_t2.nii
   BraTS20_Validation_088_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_093
   BraTS20_Validation_093_t1ce.nii
   BraTS20_Validation_093_t1.nii
   BraTS20_Validation_093_t2.nii
   BraTS20_Validation_093_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_024
   BraTS20_Validation_024_t2.nii
   BraTS20_Validation_024_t1ce.nii
   BraTS20_Validation_024_t1.nii
   BraTS20_Validation_024_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_087
   BraTS20_Validation_087_flair.nii
   BraTS20_Validation_087_t1ce.nii
   BraTS20_Validation_087_t1.nii
   BraTS20_Validation_087_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_067
   BraTS20_Validation_067_flair.nii
   BraTS20_Validation_067_t1ce.nii
   BraTS20_Validation_067_t2.nii
   BraTS20_Validation_067_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_113
   BraTS20_Validation_113_flair.nii
   BraTS20_Validation_113_t1.nii
   BraTS20_Validation_113_t1ce.nii
   BraTS20_Validation_113_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_123
   BraTS20_Validation_123_flair.nii
   BraTS20_Validation_123_t1.nii
   BraTS20_Validation_123_t1ce.nii
   BraTS20_Validation_123_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_125
   BraTS20_Validation_125_t1ce.nii
   BraTS20_Validation_125_flair.nii
   BraTS20_Validation_125_t2.nii
   BraTS20_Validation_125_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_120
   BraTS20_Validation_120_t1ce.nii
   BraTS20_Validation_120_flair.nii
   BraTS20_Validation_120_t2.nii
   BraTS20_Validation_120_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_ValidationData/MICCAI_BraTS2020_ValidationData/BraTS20_Validation_077
   BraTS20_Validation_077_t1.nii
   BraTS20_Validation_077_t1ce.nii
   BraTS20_Validation_077_flair.nii
   BraTS20_Validation_077_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData
   name_mapping.csv
   survival_info.csv

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_083
   BraTS20_Training_083_flair.nii
   BraTS20_Training_083_t1.nii
   BraTS20_Training_083_seg.nii
   BraTS20_Training_083_t2.nii
   BraTS20_Training_083_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_337
   BraTS20_Training_337_t1ce.nii
   BraTS20_Training_337_t1.nii
   BraTS20_Training_337_seg.nii
   BraTS20_Training_337_t2.nii
   BraTS20_Training_337_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_161
   BraTS20_Training_161_t1ce.nii
   BraTS20_Training_161_t2.nii
   BraTS20_Training_161_t1.nii
   BraTS20_Training_161_seg.nii
   BraTS20_Training_161_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_198
   BraTS20_Training_198_t1.nii
   BraTS20_Training_198_flair.nii
   BraTS20_Training_198_t2.nii
   BraTS20_Training_198_seg.nii
   BraTS20_Training_198_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_284
   BraTS20_Training_284_flair.nii
   BraTS20_Training_284_seg.nii
   BraTS20_Training_284_t2.nii
   BraTS20_Training_284_t1.nii
   BraTS20_Training_284_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_169
   BraTS20_Training_169_flair.nii
   BraTS20_Training_169_t1.nii
   BraTS20_Training_169_t1ce.nii
   BraTS20_Training_169_t2.nii
   BraTS20_Training_169_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_157
   BraTS20_Training_157_t1.nii
   BraTS20_Training_157_seg.nii
   BraTS20_Training_157_flair.nii
   BraTS20_Training_157_t1ce.nii
   BraTS20_Training_157_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_073
   BraTS20_Training_073_seg.nii
   BraTS20_Training_073_t2.nii
   BraTS20_Training_073_flair.nii
   BraTS20_Training_073_t1ce.nii
   BraTS20_Training_073_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_253
   BraTS20_Training_253_flair.nii
   BraTS20_Training_253_t1ce.nii
   BraTS20_Training_253_t1.nii
   BraTS20_Training_253_seg.nii
   BraTS20_Training_253_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_026
   BraTS20_Training_026_seg.nii
   BraTS20_Training_026_t1ce.nii
   BraTS20_Training_026_flair.nii
   BraTS20_Training_026_t2.nii
   BraTS20_Training_026_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_100
   BraTS20_Training_100_flair.nii
   BraTS20_Training_100_t1ce.nii
   BraTS20_Training_100_t2.nii
   BraTS20_Training_100_t1.nii
   BraTS20_Training_100_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_107
   BraTS20_Training_107_t2.nii
   BraTS20_Training_107_t1.nii
   BraTS20_Training_107_seg.nii
   BraTS20_Training_107_t1ce.nii
   BraTS20_Training_107_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_245
   BraTS20_Training_245_t1.nii
   BraTS20_Training_245_seg.nii
   BraTS20_Training_245_flair.nii
   BraTS20_Training_245_t1ce.nii
   BraTS20_Training_245_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_358
   BraTS20_Training_358_t1.nii
   BraTS20_Training_358_seg.nii
   BraTS20_Training_358_flair.nii
   BraTS20_Training_358_t1ce.nii
   BraTS20_Training_358_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_310
   BraTS20_Training_310_seg.nii
   BraTS20_Training_310_flair.nii
   BraTS20_Training_310_t2.nii
   BraTS20_Training_310_t1ce.nii
   BraTS20_Training_310_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_205
   BraTS20_Training_205_flair.nii
   BraTS20_Training_205_seg.nii
   BraTS20_Training_205_t1ce.nii
   BraTS20_Training_205_t2.nii
   BraTS20_Training_205_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_225
   BraTS20_Training_225_t2.nii
   BraTS20_Training_225_t1ce.nii
   BraTS20_Training_225_t1.nii
   BraTS20_Training_225_flair.nii
   BraTS20_Training_225_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_320
   BraTS20_Training_320_t2.nii
   BraTS20_Training_320_flair.nii
   BraTS20_Training_320_seg.nii
   BraTS20_Training_320_t1.nii
   BraTS20_Training_320_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_162
   BraTS20_Training_162_t1.nii
   BraTS20_Training_162_seg.nii
   BraTS20_Training_162_flair.nii
   BraTS20_Training_162_t1ce.nii
   BraTS20_Training_162_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_108
   BraTS20_Training_108_t1.nii
   BraTS20_Training_108_t1ce.nii
   BraTS20_Training_108_t2.nii
   BraTS20_Training_108_seg.nii
   BraTS20_Training_108_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_048
   BraTS20_Training_048_t1.nii
   BraTS20_Training_048_flair.nii
   BraTS20_Training_048_t2.nii
   BraTS20_Training_048_seg.nii
   BraTS20_Training_048_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_218
   BraTS20_Training_218_flair.nii
   BraTS20_Training_218_t1.nii
   BraTS20_Training_218_t1ce.nii
   BraTS20_Training_218_t2.nii
   BraTS20_Training_218_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_289
   BraTS20_Training_289_t1.nii
   BraTS20_Training_289_t2.nii
   BraTS20_Training_289_t1ce.nii
   BraTS20_Training_289_flair.nii
   BraTS20_Training_289_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_045
   BraTS20_Training_045_flair.nii
   BraTS20_Training_045_seg.nii
   BraTS20_Training_045_t1ce.nii
   BraTS20_Training_045_t2.nii
   BraTS20_Training_045_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_334
   BraTS20_Training_334_t2.nii
   BraTS20_Training_334_flair.nii
   BraTS20_Training_334_t1.nii
   BraTS20_Training_334_seg.nii
   BraTS20_Training_334_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_054
   BraTS20_Training_054_flair.nii
   BraTS20_Training_054_seg.nii
   BraTS20_Training_054_t1.nii
   BraTS20_Training_054_t1ce.nii
   BraTS20_Training_054_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_354
   BraTS20_Training_354_t2.nii
   BraTS20_Training_354_t1.nii
   BraTS20_Training_354_t1ce.nii
   BraTS20_Training_354_seg.nii
   BraTS20_Training_354_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_243
   BraTS20_Training_243_t2.nii
   BraTS20_Training_243_t1.nii
   BraTS20_Training_243_seg.nii
   BraTS20_Training_243_t1ce.nii
   BraTS20_Training_243_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_142
   BraTS20_Training_142_seg.nii
   BraTS20_Training_142_t1.nii
   BraTS20_Training_142_t1ce.nii
   BraTS20_Training_142_flair.nii
   BraTS20_Training_142_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_179
   BraTS20_Training_179_t1.nii
   BraTS20_Training_179_t1ce.nii
   BraTS20_Training_179_flair.nii
   BraTS20_Training_179_t2.nii
   BraTS20_Training_179_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_307
   BraTS20_Training_307_flair.nii
   BraTS20_Training_307_t1.nii
   BraTS20_Training_307_t2.nii
   BraTS20_Training_307_t1ce.nii
   BraTS20_Training_307_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_070
   BraTS20_Training_070_t1ce.nii
   BraTS20_Training_070_flair.nii
   BraTS20_Training_070_seg.nii
   BraTS20_Training_070_t1.nii
   BraTS20_Training_070_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_238
   BraTS20_Training_238_t2.nii
   BraTS20_Training_238_seg.nii
   BraTS20_Training_238_t1ce.nii
   BraTS20_Training_238_t1.nii
   BraTS20_Training_238_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_146
   BraTS20_Training_146_seg.nii
   BraTS20_Training_146_t2.nii
   BraTS20_Training_146_t1.nii
   BraTS20_Training_146_t1ce.nii
   BraTS20_Training_146_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_195
   BraTS20_Training_195_t2.nii
   BraTS20_Training_195_flair.nii
   BraTS20_Training_195_t1ce.nii
   BraTS20_Training_195_seg.nii
   BraTS20_Training_195_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_060
   BraTS20_Training_060_flair.nii
   BraTS20_Training_060_seg.nii
   BraTS20_Training_060_t2.nii
   BraTS20_Training_060_t1.nii
   BraTS20_Training_060_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_322
   BraTS20_Training_322_t1.nii
   BraTS20_Training_322_t1ce.nii
   BraTS20_Training_322_t2.nii
   BraTS20_Training_322_seg.nii
   BraTS20_Training_322_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_303
   BraTS20_Training_303_t1.nii
   BraTS20_Training_303_seg.nii
   BraTS20_Training_303_t2.nii
   BraTS20_Training_303_t1ce.nii
   BraTS20_Training_303_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_215
   BraTS20_Training_215_t2.nii
   BraTS20_Training_215_seg.nii
   BraTS20_Training_215_flair.nii
   BraTS20_Training_215_t1.nii
   BraTS20_Training_215_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_031
   BraTS20_Training_031_seg.nii
   BraTS20_Training_031_t1ce.nii
   BraTS20_Training_031_t1.nii
   BraTS20_Training_031_t2.nii
   BraTS20_Training_031_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_145
   BraTS20_Training_145_flair.nii
   BraTS20_Training_145_t1ce.nii
   BraTS20_Training_145_t2.nii
   BraTS20_Training_145_seg.nii
   BraTS20_Training_145_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_166
   BraTS20_Training_166_flair.nii
   BraTS20_Training_166_t1ce.nii
   BraTS20_Training_166_seg.nii
   BraTS20_Training_166_t2.nii
   BraTS20_Training_166_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_339
   BraTS20_Training_339_t2.nii
   BraTS20_Training_339_seg.nii
   BraTS20_Training_339_t1ce.nii
   BraTS20_Training_339_t1.nii
   BraTS20_Training_339_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_342
   BraTS20_Training_342_t2.nii
   BraTS20_Training_342_t1.nii
   BraTS20_Training_342_flair.nii
   BraTS20_Training_342_seg.nii
   BraTS20_Training_342_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_363
   BraTS20_Training_363_flair.nii
   BraTS20_Training_363_seg.nii
   BraTS20_Training_363_t1ce.nii
   BraTS20_Training_363_t2.nii
   BraTS20_Training_363_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_350
   BraTS20_Training_350_t1ce.nii
   BraTS20_Training_350_seg.nii
   BraTS20_Training_350_t1.nii
   BraTS20_Training_350_t2.nii
   BraTS20_Training_350_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_274
   BraTS20_Training_274_t2.nii
   BraTS20_Training_274_t1ce.nii
   BraTS20_Training_274_flair.nii
   BraTS20_Training_274_t1.nii
   BraTS20_Training_274_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_257
   BraTS20_Training_257_t1ce.nii
   BraTS20_Training_257_t1.nii
   BraTS20_Training_257_flair.nii
   BraTS20_Training_257_seg.nii
   BraTS20_Training_257_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_302
   BraTS20_Training_302_flair.nii
   BraTS20_Training_302_t2.nii
   BraTS20_Training_302_seg.nii
   BraTS20_Training_302_t1ce.nii
   BraTS20_Training_302_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_258
   BraTS20_Training_258_t1ce.nii
   BraTS20_Training_258_flair.nii
   BraTS20_Training_258_seg.nii
   BraTS20_Training_258_t2.nii
   BraTS20_Training_258_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_279
   BraTS20_Training_279_t2.nii
   BraTS20_Training_279_t1ce.nii
   BraTS20_Training_279_t1.nii
   BraTS20_Training_279_flair.nii
   BraTS20_Training_279_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_114
   BraTS20_Training_114_flair.nii
   BraTS20_Training_114_t1.nii
   BraTS20_Training_114_seg.nii
   BraTS20_Training_114_t1ce.nii
   BraTS20_Training_114_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_235
   BraTS20_Training_235_t2.nii
   BraTS20_Training_235_seg.nii
   BraTS20_Training_235_t1.nii
   BraTS20_Training_235_t1ce.nii
   BraTS20_Training_235_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_331
   BraTS20_Training_331_seg.nii
   BraTS20_Training_331_flair.nii
   BraTS20_Training_331_t2.nii
   BraTS20_Training_331_t1.nii
   BraTS20_Training_331_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_219
   BraTS20_Training_219_seg.nii
   BraTS20_Training_219_t1.nii
   BraTS20_Training_219_flair.nii
   BraTS20_Training_219_t1ce.nii
   BraTS20_Training_219_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_316
   BraTS20_Training_316_t2.nii
   BraTS20_Training_316_flair.nii
   BraTS20_Training_316_t1.nii
   BraTS20_Training_316_seg.nii
   BraTS20_Training_316_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_266
   BraTS20_Training_266_t2.nii
   BraTS20_Training_266_t1ce.nii
   BraTS20_Training_266_t1.nii
   BraTS20_Training_266_seg.nii
   BraTS20_Training_266_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_004
   BraTS20_Training_004_flair.nii
   BraTS20_Training_004_t2.nii
   BraTS20_Training_004_t1.nii
   BraTS20_Training_004_seg.nii
   BraTS20_Training_004_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_328
   BraTS20_Training_328_seg.nii
   BraTS20_Training_328_flair.nii
   BraTS20_Training_328_t1.nii
   BraTS20_Training_328_t2.nii
   BraTS20_Training_328_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_368
   BraTS20_Training_368_t1.nii
   BraTS20_Training_368_seg.nii
   BraTS20_Training_368_t1ce.nii
   BraTS20_Training_368_flair.nii
   BraTS20_Training_368_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_119
   BraTS20_Training_119_t1.nii
   BraTS20_Training_119_t1ce.nii
   BraTS20_Training_119_flair.nii
   BraTS20_Training_119_seg.nii
   BraTS20_Training_119_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_364
   BraTS20_Training_364_t1ce.nii
   BraTS20_Training_364_t1.nii
   BraTS20_Training_364_t2.nii
   BraTS20_Training_364_seg.nii
   BraTS20_Training_364_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_281
   BraTS20_Training_281_flair.nii
   BraTS20_Training_281_t1ce.nii
   BraTS20_Training_281_t2.nii
   BraTS20_Training_281_seg.nii
   BraTS20_Training_281_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_227
   BraTS20_Training_227_flair.nii
   BraTS20_Training_227_t2.nii
   BraTS20_Training_227_t1ce.nii
   BraTS20_Training_227_seg.nii
   BraTS20_Training_227_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_065
   BraTS20_Training_065_seg.nii
   BraTS20_Training_065_t1ce.nii
   BraTS20_Training_065_t1.nii
   BraTS20_Training_065_flair.nii
   BraTS20_Training_065_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_127
   BraTS20_Training_127_t1.nii
   BraTS20_Training_127_t2.nii
   BraTS20_Training_127_flair.nii
   BraTS20_Training_127_seg.nii
   BraTS20_Training_127_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_268
   BraTS20_Training_268_seg.nii
   BraTS20_Training_268_t1.nii
   BraTS20_Training_268_t1ce.nii
   BraTS20_Training_268_flair.nii
   BraTS20_Training_268_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_273
   BraTS20_Training_273_t1.nii
   BraTS20_Training_273_t1ce.nii
   BraTS20_Training_273_flair.nii
   BraTS20_Training_273_seg.nii
   BraTS20_Training_273_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_180
   BraTS20_Training_180_t1ce.nii
   BraTS20_Training_180_t2.nii
   BraTS20_Training_180_seg.nii
   BraTS20_Training_180_t1.nii
   BraTS20_Training_180_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_292
   BraTS20_Training_292_flair.nii
   BraTS20_Training_292_seg.nii
   BraTS20_Training_292_t1.nii
   BraTS20_Training_292_t1ce.nii
   BraTS20_Training_292_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_173
   BraTS20_Training_173_seg.nii
   BraTS20_Training_173_t1.nii
   BraTS20_Training_173_flair.nii
   BraTS20_Training_173_t1ce.nii
   BraTS20_Training_173_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_207
   BraTS20_Training_207_t2.nii
   BraTS20_Training_207_seg.nii
   BraTS20_Training_207_t1.nii
   BraTS20_Training_207_flair.nii
   BraTS20_Training_207_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_222
   BraTS20_Training_222_seg.nii
   BraTS20_Training_222_t2.nii
   BraTS20_Training_222_t1ce.nii
   BraTS20_Training_222_flair.nii
   BraTS20_Training_222_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_034
   BraTS20_Training_034_seg.nii
   BraTS20_Training_034_t1.nii
   BraTS20_Training_034_flair.nii
   BraTS20_Training_034_t1ce.nii
   BraTS20_Training_034_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_027
   BraTS20_Training_027_flair.nii
   BraTS20_Training_027_seg.nii
   BraTS20_Training_027_t1ce.nii
   BraTS20_Training_027_t2.nii
   BraTS20_Training_027_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_010
   BraTS20_Training_010_t1.nii
   BraTS20_Training_010_t2.nii
   BraTS20_Training_010_flair.nii
   BraTS20_Training_010_seg.nii
   BraTS20_Training_010_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_110
   BraTS20_Training_110_t2.nii
   BraTS20_Training_110_t1ce.nii
   BraTS20_Training_110_seg.nii
   BraTS20_Training_110_flair.nii
   BraTS20_Training_110_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_244
   BraTS20_Training_244_t2.nii
   BraTS20_Training_244_t1ce.nii
   BraTS20_Training_244_flair.nii
   BraTS20_Training_244_t1.nii
   BraTS20_Training_244_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_076
   BraTS20_Training_076_t2.nii
   BraTS20_Training_076_seg.nii
   BraTS20_Training_076_flair.nii
   BraTS20_Training_076_t1ce.nii
   BraTS20_Training_076_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_141
   BraTS20_Training_141_t2.nii
   BraTS20_Training_141_t1ce.nii
   BraTS20_Training_141_flair.nii
   BraTS20_Training_141_seg.nii
   BraTS20_Training_141_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_097
   BraTS20_Training_097_t1ce.nii
   BraTS20_Training_097_t1.nii
   BraTS20_Training_097_flair.nii
   BraTS20_Training_097_t2.nii
   BraTS20_Training_097_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_158
   BraTS20_Training_158_seg.nii
   BraTS20_Training_158_t1.nii
   BraTS20_Training_158_t1ce.nii
   BraTS20_Training_158_flair.nii
   BraTS20_Training_158_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_095
   BraTS20_Training_095_seg.nii
   BraTS20_Training_095_t1ce.nii
   BraTS20_Training_095_flair.nii
   BraTS20_Training_095_t1.nii
   BraTS20_Training_095_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_361
   BraTS20_Training_361_t2.nii
   BraTS20_Training_361_seg.nii
   BraTS20_Training_361_t1ce.nii
   BraTS20_Training_361_flair.nii
   BraTS20_Training_361_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_318
   BraTS20_Training_318_t1ce.nii
   BraTS20_Training_318_t2.nii
   BraTS20_Training_318_flair.nii
   BraTS20_Training_318_seg.nii
   BraTS20_Training_318_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_324
   BraTS20_Training_324_flair.nii
   BraTS20_Training_324_t2.nii
   BraTS20_Training_324_t1.nii
   BraTS20_Training_324_t1ce.nii
   BraTS20_Training_324_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_052
   BraTS20_Training_052_t2.nii
   BraTS20_Training_052_t1.nii
   BraTS20_Training_052_flair.nii
   BraTS20_Training_052_seg.nii
   BraTS20_Training_052_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_263
   BraTS20_Training_263_t2.nii
   BraTS20_Training_263_seg.nii
   BraTS20_Training_263_t1.nii
   BraTS20_Training_263_flair.nii
   BraTS20_Training_263_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_294
   BraTS20_Training_294_t1.nii
   BraTS20_Training_294_t1ce.nii
   BraTS20_Training_294_flair.nii
   BraTS20_Training_294_seg.nii
   BraTS20_Training_294_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_124
   BraTS20_Training_124_t1ce.nii
   BraTS20_Training_124_flair.nii
   BraTS20_Training_124_t1.nii
   BraTS20_Training_124_seg.nii
   BraTS20_Training_124_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_117
   BraTS20_Training_117_flair.nii
   BraTS20_Training_117_t1.nii
   BraTS20_Training_117_seg.nii
   BraTS20_Training_117_t2.nii
   BraTS20_Training_117_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_365
   BraTS20_Training_365_t1ce.nii
   BraTS20_Training_365_flair.nii
   BraTS20_Training_365_seg.nii
   BraTS20_Training_365_t2.nii
   BraTS20_Training_365_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_030
   BraTS20_Training_030_seg.nii
   BraTS20_Training_030_t2.nii
   BraTS20_Training_030_t1.nii
   BraTS20_Training_030_t1ce.nii
   BraTS20_Training_030_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_299
   BraTS20_Training_299_t1ce.nii
   BraTS20_Training_299_seg.nii
   BraTS20_Training_299_t2.nii
   BraTS20_Training_299_t1.nii
   BraTS20_Training_299_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_209
   BraTS20_Training_209_seg.nii
   BraTS20_Training_209_t1.nii
   BraTS20_Training_209_t1ce.nii
   BraTS20_Training_209_flair.nii
   BraTS20_Training_209_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_080
   BraTS20_Training_080_flair.nii
   BraTS20_Training_080_t1ce.nii
   BraTS20_Training_080_t2.nii
   BraTS20_Training_080_t1.nii
   BraTS20_Training_080_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_189
   BraTS20_Training_189_t2.nii
   BraTS20_Training_189_t1.nii
   BraTS20_Training_189_t1ce.nii
   BraTS20_Training_189_seg.nii
   BraTS20_Training_189_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_314
   BraTS20_Training_314_t2.nii
   BraTS20_Training_314_t1.nii
   BraTS20_Training_314_seg.nii
   BraTS20_Training_314_flair.nii
   BraTS20_Training_314_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_121
   BraTS20_Training_121_t1ce.nii
   BraTS20_Training_121_flair.nii
   BraTS20_Training_121_t1.nii
   BraTS20_Training_121_t2.nii
   BraTS20_Training_121_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_046
   BraTS20_Training_046_flair.nii
   BraTS20_Training_046_t2.nii
   BraTS20_Training_046_t1.nii
   BraTS20_Training_046_seg.nii
   BraTS20_Training_046_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_196
   BraTS20_Training_196_t2.nii
   BraTS20_Training_196_t1ce.nii
   BraTS20_Training_196_t1.nii
   BraTS20_Training_196_seg.nii
   BraTS20_Training_196_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_153
   BraTS20_Training_153_t1ce.nii
   BraTS20_Training_153_seg.nii
   BraTS20_Training_153_t2.nii
   BraTS20_Training_153_flair.nii
   BraTS20_Training_153_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_063
   BraTS20_Training_063_t2.nii
   BraTS20_Training_063_t1ce.nii
   BraTS20_Training_063_t1.nii
   BraTS20_Training_063_flair.nii
   BraTS20_Training_063_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_210
   BraTS20_Training_210_seg.nii
   BraTS20_Training_210_t2.nii
   BraTS20_Training_210_t1.nii
   BraTS20_Training_210_t1ce.nii
   BraTS20_Training_210_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_251
   BraTS20_Training_251_t1ce.nii
   BraTS20_Training_251_t1.nii
   BraTS20_Training_251_flair.nii
   BraTS20_Training_251_t2.nii
   BraTS20_Training_251_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_154
   BraTS20_Training_154_t1.nii
   BraTS20_Training_154_seg.nii
   BraTS20_Training_154_t2.nii
   BraTS20_Training_154_flair.nii
   BraTS20_Training_154_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_125
   BraTS20_Training_125_seg.nii
   BraTS20_Training_125_t2.nii
   BraTS20_Training_125_t1.nii
   BraTS20_Training_125_flair.nii
   BraTS20_Training_125_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_359
   BraTS20_Training_359_seg.nii
   BraTS20_Training_359_flair.nii
   BraTS20_Training_359_t2.nii
   BraTS20_Training_359_t1.nii
   BraTS20_Training_359_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_206
   BraTS20_Training_206_flair.nii
   BraTS20_Training_206_t1ce.nii
   BraTS20_Training_206_t1.nii
   BraTS20_Training_206_t2.nii
   BraTS20_Training_206_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_185
   BraTS20_Training_185_flair.nii
   BraTS20_Training_185_seg.nii
   BraTS20_Training_185_t1ce.nii
   BraTS20_Training_185_t1.nii
   BraTS20_Training_185_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_044
   BraTS20_Training_044_flair.nii
   BraTS20_Training_044_t1.nii
   BraTS20_Training_044_seg.nii
   BraTS20_Training_044_t2.nii
   BraTS20_Training_044_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_016
   BraTS20_Training_016_t2.nii
   BraTS20_Training_016_t1ce.nii
   BraTS20_Training_016_seg.nii
   BraTS20_Training_016_t1.nii
   BraTS20_Training_016_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_115
   BraTS20_Training_115_t1ce.nii
   BraTS20_Training_115_seg.nii
   BraTS20_Training_115_t1.nii
   BraTS20_Training_115_flair.nii
   BraTS20_Training_115_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_357
   BraTS20_Training_357_t1.nii
   BraTS20_Training_357_t1ce.nii
   BraTS20_Training_357_t2.nii
   BraTS20_Training_357_flair.nii
   BraTS20_Training_357_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_216
   BraTS20_Training_216_seg.nii
   BraTS20_Training_216_t1.nii
   BraTS20_Training_216_flair.nii
   BraTS20_Training_216_t2.nii
   BraTS20_Training_216_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_341
   BraTS20_Training_341_seg.nii
   BraTS20_Training_341_t2.nii
   BraTS20_Training_341_t1.nii
   BraTS20_Training_341_flair.nii
   BraTS20_Training_341_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_116
   BraTS20_Training_116_seg.nii
   BraTS20_Training_116_t2.nii
   BraTS20_Training_116_flair.nii
   BraTS20_Training_116_t1.nii
   BraTS20_Training_116_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_230
   BraTS20_Training_230_seg.nii
   BraTS20_Training_230_t1.nii
   BraTS20_Training_230_t2.nii
   BraTS20_Training_230_flair.nii
   BraTS20_Training_230_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_090
   BraTS20_Training_090_t1.nii
   BraTS20_Training_090_flair.nii
   BraTS20_Training_090_t2.nii
   BraTS20_Training_090_t1ce.nii
   BraTS20_Training_090_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_106
   BraTS20_Training_106_t1.nii
   BraTS20_Training_106_flair.nii
   BraTS20_Training_106_t2.nii
   BraTS20_Training_106_t1ce.nii
   BraTS20_Training_106_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_170
   BraTS20_Training_170_seg.nii
   BraTS20_Training_170_t1.nii
   BraTS20_Training_170_t1ce.nii
   BraTS20_Training_170_t2.nii
   BraTS20_Training_170_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_309
   BraTS20_Training_309_flair.nii
   BraTS20_Training_309_t1ce.nii
   BraTS20_Training_309_seg.nii
   BraTS20_Training_309_t1.nii
   BraTS20_Training_309_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_053
   BraTS20_Training_053_seg.nii
   BraTS20_Training_053_flair.nii
   BraTS20_Training_053_t2.nii
   BraTS20_Training_053_t1.nii
   BraTS20_Training_053_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_272
   BraTS20_Training_272_t2.nii
   BraTS20_Training_272_t1.nii
   BraTS20_Training_272_t1ce.nii
   BraTS20_Training_272_seg.nii
   BraTS20_Training_272_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_202
   BraTS20_Training_202_flair.nii
   BraTS20_Training_202_t1.nii
   BraTS20_Training_202_seg.nii
   BraTS20_Training_202_t2.nii
   BraTS20_Training_202_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_330
   BraTS20_Training_330_flair.nii
   BraTS20_Training_330_t2.nii
   BraTS20_Training_330_t1.nii
   BraTS20_Training_330_seg.nii
   BraTS20_Training_330_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_212
   BraTS20_Training_212_t1ce.nii
   BraTS20_Training_212_t2.nii
   BraTS20_Training_212_seg.nii
   BraTS20_Training_212_t1.nii
   BraTS20_Training_212_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_122
   BraTS20_Training_122_t2.nii
   BraTS20_Training_122_seg.nii
   BraTS20_Training_122_t1ce.nii
   BraTS20_Training_122_flair.nii
   BraTS20_Training_122_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_140
   BraTS20_Training_140_seg.nii
   BraTS20_Training_140_t1ce.nii
   BraTS20_Training_140_t1.nii
   BraTS20_Training_140_t2.nii
   BraTS20_Training_140_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_105
   BraTS20_Training_105_seg.nii
   BraTS20_Training_105_t1.nii
   BraTS20_Training_105_flair.nii
   BraTS20_Training_105_t2.nii
   BraTS20_Training_105_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_332
   BraTS20_Training_332_t2.nii
   BraTS20_Training_332_t1.nii
   BraTS20_Training_332_t1ce.nii
   BraTS20_Training_332_flair.nii
   BraTS20_Training_332_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_011
   BraTS20_Training_011_t2.nii
   BraTS20_Training_011_seg.nii
   BraTS20_Training_011_t1.nii
   BraTS20_Training_011_flair.nii
   BraTS20_Training_011_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_041
   BraTS20_Training_041_t1.nii
   BraTS20_Training_041_t2.nii
   BraTS20_Training_041_t1ce.nii
   BraTS20_Training_041_flair.nii
   BraTS20_Training_041_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_138
   BraTS20_Training_138_t1ce.nii
   BraTS20_Training_138_t2.nii
   BraTS20_Training_138_seg.nii
   BraTS20_Training_138_t1.nii
   BraTS20_Training_138_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_099
   BraTS20_Training_099_t1.nii
   BraTS20_Training_099_t2.nii
   BraTS20_Training_099_flair.nii
   BraTS20_Training_099_seg.nii
   BraTS20_Training_099_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_152
   BraTS20_Training_152_seg.nii
   BraTS20_Training_152_flair.nii
   BraTS20_Training_152_t1.nii
   BraTS20_Training_152_t2.nii
   BraTS20_Training_152_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_300
   BraTS20_Training_300_t1.nii
   BraTS20_Training_300_flair.nii
   BraTS20_Training_300_t1ce.nii
   BraTS20_Training_300_seg.nii
   BraTS20_Training_300_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_252
   BraTS20_Training_252_flair.nii
   BraTS20_Training_252_seg.nii
   BraTS20_Training_252_t1.nii
   BraTS20_Training_252_t1ce.nii
   BraTS20_Training_252_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_176
   BraTS20_Training_176_t1.nii
   BraTS20_Training_176_flair.nii
   BraTS20_Training_176_t2.nii
   BraTS20_Training_176_t1ce.nii
   BraTS20_Training_176_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_040
   BraTS20_Training_040_t2.nii
   BraTS20_Training_040_seg.nii
   BraTS20_Training_040_t1ce.nii
   BraTS20_Training_040_flair.nii
   BraTS20_Training_040_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_015
   BraTS20_Training_015_t2.nii
   BraTS20_Training_015_t1.nii
   BraTS20_Training_015_seg.nii
   BraTS20_Training_015_flair.nii
   BraTS20_Training_015_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_213
   BraTS20_Training_213_flair.nii
   BraTS20_Training_213_t1ce.nii
   BraTS20_Training_213_seg.nii
   BraTS20_Training_213_t1.nii
   BraTS20_Training_213_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_312
   BraTS20_Training_312_t1.nii
   BraTS20_Training_312_seg.nii
   BraTS20_Training_312_t2.nii
   BraTS20_Training_312_flair.nii
   BraTS20_Training_312_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_005
   BraTS20_Training_005_flair.nii
   BraTS20_Training_005_t1ce.nii
   BraTS20_Training_005_t1.nii
   BraTS20_Training_005_seg.nii
   BraTS20_Training_005_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_029
   BraTS20_Training_029_t2.nii
   BraTS20_Training_029_seg.nii
   BraTS20_Training_029_t1.nii
   BraTS20_Training_029_flair.nii
   BraTS20_Training_029_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_271
   BraTS20_Training_271_t1ce.nii
   BraTS20_Training_271_seg.nii
   BraTS20_Training_271_t2.nii
   BraTS20_Training_271_t1.nii
   BraTS20_Training_271_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_156
   BraTS20_Training_156_t2.nii
   BraTS20_Training_156_t1ce.nii
   BraTS20_Training_156_seg.nii
   BraTS20_Training_156_flair.nii
   BraTS20_Training_156_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_275
   BraTS20_Training_275_t1.nii
   BraTS20_Training_275_seg.nii
   BraTS20_Training_275_t2.nii
   BraTS20_Training_275_flair.nii
   BraTS20_Training_275_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_147
   BraTS20_Training_147_seg.nii
   BraTS20_Training_147_t1.nii
   BraTS20_Training_147_t2.nii
   BraTS20_Training_147_t1ce.nii
   BraTS20_Training_147_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_113
   BraTS20_Training_113_t2.nii
   BraTS20_Training_113_t1ce.nii
   BraTS20_Training_113_flair.nii
   BraTS20_Training_113_t1.nii
   BraTS20_Training_113_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_239
   BraTS20_Training_239_t1ce.nii
   BraTS20_Training_239_t1.nii
   BraTS20_Training_239_seg.nii
   BraTS20_Training_239_t2.nii
   BraTS20_Training_239_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_329
   BraTS20_Training_329_seg.nii
   BraTS20_Training_329_t1ce.nii
   BraTS20_Training_329_flair.nii
   BraTS20_Training_329_t1.nii
   BraTS20_Training_329_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_055
   BraTS20_Training_055_seg.nii
   BraTS20_Training_055_t1.nii
   BraTS20_Training_055_t2.nii
   BraTS20_Training_055_t1ce.nii
   BraTS20_Training_055_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_136
   BraTS20_Training_136_flair.nii
   BraTS20_Training_136_seg.nii
   BraTS20_Training_136_t1.nii
   BraTS20_Training_136_t2.nii
   BraTS20_Training_136_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_208
   BraTS20_Training_208_t1ce.nii
   BraTS20_Training_208_t1.nii
   BraTS20_Training_208_seg.nii
   BraTS20_Training_208_t2.nii
   BraTS20_Training_208_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_056
   BraTS20_Training_056_t2.nii
   BraTS20_Training_056_t1ce.nii
   BraTS20_Training_056_flair.nii
   BraTS20_Training_056_seg.nii
   BraTS20_Training_056_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_078
   BraTS20_Training_078_seg.nii
   BraTS20_Training_078_t1.nii
   BraTS20_Training_078_flair.nii
   BraTS20_Training_078_t2.nii
   BraTS20_Training_078_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_001
   BraTS20_Training_001_t2.nii
   BraTS20_Training_001_t1ce.nii
   BraTS20_Training_001_t1.nii
   BraTS20_Training_001_seg.nii
   BraTS20_Training_001_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_150
   BraTS20_Training_150_flair.nii
   BraTS20_Training_150_t1ce.nii
   BraTS20_Training_150_t2.nii
   BraTS20_Training_150_seg.nii
   BraTS20_Training_150_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_133
   BraTS20_Training_133_t1ce.nii
   BraTS20_Training_133_t1.nii
   BraTS20_Training_133_t2.nii
   BraTS20_Training_133_seg.nii
   BraTS20_Training_133_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_109
   BraTS20_Training_109_flair.nii
   BraTS20_Training_109_t1.nii
   BraTS20_Training_109_seg.nii
   BraTS20_Training_109_t2.nii
   BraTS20_Training_109_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_249
   BraTS20_Training_249_t1ce.nii
   BraTS20_Training_249_t1.nii
   BraTS20_Training_249_flair.nii
   BraTS20_Training_249_seg.nii
   BraTS20_Training_249_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_293
   BraTS20_Training_293_seg.nii
   BraTS20_Training_293_t1ce.nii
   BraTS20_Training_293_flair.nii
   BraTS20_Training_293_t1.nii
   BraTS20_Training_293_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_311
   BraTS20_Training_311_flair.nii
   BraTS20_Training_311_seg.nii
   BraTS20_Training_311_t1.nii
   BraTS20_Training_311_t2.nii
   BraTS20_Training_311_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_204
   BraTS20_Training_204_t1.nii
   BraTS20_Training_204_t1ce.nii
   BraTS20_Training_204_seg.nii
   BraTS20_Training_204_flair.nii
   BraTS20_Training_204_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_081
   BraTS20_Training_081_t1.nii
   BraTS20_Training_081_t1ce.nii
   BraTS20_Training_081_seg.nii
   BraTS20_Training_081_t2.nii
   BraTS20_Training_081_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_159
   BraTS20_Training_159_t2.nii
   BraTS20_Training_159_t1ce.nii
   BraTS20_Training_159_flair.nii
   BraTS20_Training_159_t1.nii
   BraTS20_Training_159_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_220
   BraTS20_Training_220_seg.nii
   BraTS20_Training_220_t2.nii
   BraTS20_Training_220_t1.nii
   BraTS20_Training_220_flair.nii
   BraTS20_Training_220_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_172
   BraTS20_Training_172_flair.nii
   BraTS20_Training_172_t1ce.nii
   BraTS20_Training_172_seg.nii
   BraTS20_Training_172_t2.nii
   BraTS20_Training_172_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_287
   BraTS20_Training_287_t1.nii
   BraTS20_Training_287_t2.nii
   BraTS20_Training_287_seg.nii
   BraTS20_Training_287_flair.nii
   BraTS20_Training_287_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_155
   BraTS20_Training_155_flair.nii
   BraTS20_Training_155_t1.nii
   BraTS20_Training_155_t2.nii
   BraTS20_Training_155_seg.nii
   BraTS20_Training_155_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_182
   BraTS20_Training_182_t1ce.nii
   BraTS20_Training_182_t2.nii
   BraTS20_Training_182_t1.nii
   BraTS20_Training_182_flair.nii
   BraTS20_Training_182_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_353
   BraTS20_Training_353_t1.nii
   BraTS20_Training_353_seg.nii
   BraTS20_Training_353_t2.nii
   BraTS20_Training_353_t1ce.nii
   BraTS20_Training_353_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_321
   BraTS20_Training_321_seg.nii
   BraTS20_Training_321_t2.nii
   BraTS20_Training_321_flair.nii
   BraTS20_Training_321_t1ce.nii
   BraTS20_Training_321_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_167
   BraTS20_Training_167_t1.nii
   BraTS20_Training_167_flair.nii
   BraTS20_Training_167_t1ce.nii
   BraTS20_Training_167_t2.nii
   BraTS20_Training_167_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_086
   BraTS20_Training_086_seg.nii
   BraTS20_Training_086_t2.nii
   BraTS20_Training_086_flair.nii
   BraTS20_Training_086_t1.nii
   BraTS20_Training_086_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_096
   BraTS20_Training_096_t2.nii
   BraTS20_Training_096_flair.nii
   BraTS20_Training_096_t1.nii
   BraTS20_Training_096_seg.nii
   BraTS20_Training_096_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_064
   BraTS20_Training_064_t1.nii
   BraTS20_Training_064_t2.nii
   BraTS20_Training_064_seg.nii
   BraTS20_Training_064_flair.nii
   BraTS20_Training_064_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_326
   BraTS20_Training_326_t1ce.nii
   BraTS20_Training_326_t2.nii
   BraTS20_Training_326_seg.nii
   BraTS20_Training_326_flair.nii
   BraTS20_Training_326_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_079
   BraTS20_Training_079_t2.nii
   BraTS20_Training_079_t1.nii
   BraTS20_Training_079_flair.nii
   BraTS20_Training_079_t1ce.nii
   BraTS20_Training_079_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_259
   BraTS20_Training_259_t2.nii
   BraTS20_Training_259_t1.nii
   BraTS20_Training_259_t1ce.nii
   BraTS20_Training_259_flair.nii
   BraTS20_Training_259_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_092
   BraTS20_Training_092_t2.nii
   BraTS20_Training_092_seg.nii
   BraTS20_Training_092_flair.nii
   BraTS20_Training_092_t1.nii
   BraTS20_Training_092_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_067
   BraTS20_Training_067_t1ce.nii
   BraTS20_Training_067_seg.nii
   BraTS20_Training_067_t1.nii
   BraTS20_Training_067_flair.nii
   BraTS20_Training_067_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_234
   BraTS20_Training_234_flair.nii
   BraTS20_Training_234_t1ce.nii
   BraTS20_Training_234_t1.nii
   BraTS20_Training_234_seg.nii
   BraTS20_Training_234_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_022
   BraTS20_Training_022_t1ce.nii
   BraTS20_Training_022_t1.nii
   BraTS20_Training_022_flair.nii
   BraTS20_Training_022_t2.nii
   BraTS20_Training_022_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_075
   BraTS20_Training_075_t1ce.nii
   BraTS20_Training_075_t1.nii
   BraTS20_Training_075_t2.nii
   BraTS20_Training_075_seg.nii
   BraTS20_Training_075_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_089
   BraTS20_Training_089_t2.nii
   BraTS20_Training_089_t1.nii
   BraTS20_Training_089_seg.nii
   BraTS20_Training_089_t1ce.nii
   BraTS20_Training_089_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_254
   BraTS20_Training_254_flair.nii
   BraTS20_Training_254_t1ce.nii
   BraTS20_Training_254_seg.nii
   BraTS20_Training_254_t1.nii
   BraTS20_Training_254_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_306
   BraTS20_Training_306_t1ce.nii
   BraTS20_Training_306_t2.nii
   BraTS20_Training_306_t1.nii
   BraTS20_Training_306_seg.nii
   BraTS20_Training_306_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_214
   BraTS20_Training_214_t2.nii
   BraTS20_Training_214_t1ce.nii
   BraTS20_Training_214_seg.nii
   BraTS20_Training_214_t1.nii
   BraTS20_Training_214_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_247
   BraTS20_Training_247_flair.nii
   BraTS20_Training_247_t1ce.nii
   BraTS20_Training_247_t2.nii
   BraTS20_Training_247_seg.nii
   BraTS20_Training_247_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_163
   BraTS20_Training_163_flair.nii
   BraTS20_Training_163_t1ce.nii
   BraTS20_Training_163_t1.nii
   BraTS20_Training_163_t2.nii
   BraTS20_Training_163_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_223
   BraTS20_Training_223_t1.nii
   BraTS20_Training_223_seg.nii
   BraTS20_Training_223_t1ce.nii
   BraTS20_Training_223_t2.nii
   BraTS20_Training_223_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_295
   BraTS20_Training_295_t2.nii
   BraTS20_Training_295_seg.nii
   BraTS20_Training_295_t1ce.nii
   BraTS20_Training_295_flair.nii
   BraTS20_Training_295_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_241
   BraTS20_Training_241_t1.nii
   BraTS20_Training_241_flair.nii
   BraTS20_Training_241_t2.nii
   BraTS20_Training_241_t1ce.nii
   BraTS20_Training_241_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_033
   BraTS20_Training_033_t1.nii
   BraTS20_Training_033_flair.nii
   BraTS20_Training_033_t1ce.nii
   BraTS20_Training_033_seg.nii
   BraTS20_Training_033_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_250
   BraTS20_Training_250_flair.nii
   BraTS20_Training_250_t1.nii
   BraTS20_Training_250_seg.nii
   BraTS20_Training_250_t2.nii
   BraTS20_Training_250_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_282
   BraTS20_Training_282_flair.nii
   BraTS20_Training_282_t1.nii
   BraTS20_Training_282_t1ce.nii
   BraTS20_Training_282_seg.nii
   BraTS20_Training_282_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_344
   BraTS20_Training_344_t2.nii
   BraTS20_Training_344_t1ce.nii
   BraTS20_Training_344_t1.nii
   BraTS20_Training_344_seg.nii
   BraTS20_Training_344_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_102
   BraTS20_Training_102_t1.nii
   BraTS20_Training_102_seg.nii
   BraTS20_Training_102_flair.nii
   BraTS20_Training_102_t1ce.nii
   BraTS20_Training_102_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_143
   BraTS20_Training_143_seg.nii
   BraTS20_Training_143_flair.nii
   BraTS20_Training_143_t2.nii
   BraTS20_Training_143_t1ce.nii
   BraTS20_Training_143_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_058
   BraTS20_Training_058_t1ce.nii
   BraTS20_Training_058_seg.nii
   BraTS20_Training_058_flair.nii
   BraTS20_Training_058_t1.nii
   BraTS20_Training_058_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_123
   BraTS20_Training_123_t1ce.nii
   BraTS20_Training_123_seg.nii
   BraTS20_Training_123_flair.nii
   BraTS20_Training_123_t1.nii
   BraTS20_Training_123_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_286
   BraTS20_Training_286_t1.nii
   BraTS20_Training_286_flair.nii
   BraTS20_Training_286_t2.nii
   BraTS20_Training_286_seg.nii
   BraTS20_Training_286_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_346
   BraTS20_Training_346_t1.nii
   BraTS20_Training_346_flair.nii
   BraTS20_Training_346_seg.nii
   BraTS20_Training_346_t1ce.nii
   BraTS20_Training_346_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_093
   BraTS20_Training_093_t1ce.nii
   BraTS20_Training_093_t2.nii
   BraTS20_Training_093_t1.nii
   BraTS20_Training_093_seg.nii
   BraTS20_Training_093_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_062
   BraTS20_Training_062_t1ce.nii
   BraTS20_Training_062_t2.nii
   BraTS20_Training_062_flair.nii
   BraTS20_Training_062_t1.nii
   BraTS20_Training_062_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_333
   BraTS20_Training_333_seg.nii
   BraTS20_Training_333_t1ce.nii
   BraTS20_Training_333_t2.nii
   BraTS20_Training_333_t1.nii
   BraTS20_Training_333_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_094
   BraTS20_Training_094_seg.nii
   BraTS20_Training_094_t1.nii
   BraTS20_Training_094_flair.nii
   BraTS20_Training_094_t2.nii
   BraTS20_Training_094_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_037
   BraTS20_Training_037_flair.nii
   BraTS20_Training_037_t2.nii
   BraTS20_Training_037_t1.nii
   BraTS20_Training_037_seg.nii
   BraTS20_Training_037_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_233
   BraTS20_Training_233_t1ce.nii
   BraTS20_Training_233_t1.nii
   BraTS20_Training_233_seg.nii
   BraTS20_Training_233_flair.nii
   BraTS20_Training_233_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_351
   BraTS20_Training_351_seg.nii
   BraTS20_Training_351_flair.nii
   BraTS20_Training_351_t1.nii
   BraTS20_Training_351_t1ce.nii
   BraTS20_Training_351_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_280
   BraTS20_Training_280_t1ce.nii
   BraTS20_Training_280_t1.nii
   BraTS20_Training_280_flair.nii
   BraTS20_Training_280_t2.nii
   BraTS20_Training_280_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_035
   BraTS20_Training_035_t2.nii
   BraTS20_Training_035_flair.nii
   BraTS20_Training_035_t1.nii
   BraTS20_Training_035_seg.nii
   BraTS20_Training_035_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_057
   BraTS20_Training_057_flair.nii
   BraTS20_Training_057_seg.nii
   BraTS20_Training_057_t1ce.nii
   BraTS20_Training_057_t2.nii
   BraTS20_Training_057_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_228
   BraTS20_Training_228_t1ce.nii
   BraTS20_Training_228_t2.nii
   BraTS20_Training_228_flair.nii
   BraTS20_Training_228_t1.nii
   BraTS20_Training_228_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_256
   BraTS20_Training_256_t1.nii
   BraTS20_Training_256_seg.nii
   BraTS20_Training_256_t2.nii
   BraTS20_Training_256_t1ce.nii
   BraTS20_Training_256_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_188
   BraTS20_Training_188_t1.nii
   BraTS20_Training_188_seg.nii
   BraTS20_Training_188_flair.nii
   BraTS20_Training_188_t2.nii
   BraTS20_Training_188_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_304
   BraTS20_Training_304_flair.nii
   BraTS20_Training_304_t1ce.nii
   BraTS20_Training_304_t1.nii
   BraTS20_Training_304_t2.nii
   BraTS20_Training_304_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_003
   BraTS20_Training_003_t1ce.nii
   BraTS20_Training_003_t1.nii
   BraTS20_Training_003_seg.nii
   BraTS20_Training_003_flair.nii
   BraTS20_Training_003_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_023
   BraTS20_Training_023_t2.nii
   BraTS20_Training_023_t1.nii
   BraTS20_Training_023_t1ce.nii
   BraTS20_Training_023_flair.nii
   BraTS20_Training_023_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_248
   BraTS20_Training_248_t2.nii
   BraTS20_Training_248_flair.nii
   BraTS20_Training_248_t1.nii
   BraTS20_Training_248_seg.nii
   BraTS20_Training_248_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_200
   BraTS20_Training_200_t2.nii
   BraTS20_Training_200_seg.nii
   BraTS20_Training_200_t1.nii
   BraTS20_Training_200_flair.nii
   BraTS20_Training_200_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_184
   BraTS20_Training_184_t1ce.nii
   BraTS20_Training_184_seg.nii
   BraTS20_Training_184_flair.nii
   BraTS20_Training_184_t1.nii
   BraTS20_Training_184_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_148
   BraTS20_Training_148_seg.nii
   BraTS20_Training_148_t1ce.nii
   BraTS20_Training_148_t2.nii
   BraTS20_Training_148_t1.nii
   BraTS20_Training_148_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_043
   BraTS20_Training_043_t2.nii
   BraTS20_Training_043_flair.nii
   BraTS20_Training_043_seg.nii
   BraTS20_Training_043_t1ce.nii
   BraTS20_Training_043_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_319
   BraTS20_Training_319_t1ce.nii
   BraTS20_Training_319_t1.nii
   BraTS20_Training_319_seg.nii
   BraTS20_Training_319_flair.nii
   BraTS20_Training_319_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_038
   BraTS20_Training_038_t1ce.nii
   BraTS20_Training_038_seg.nii
   BraTS20_Training_038_t1.nii
   BraTS20_Training_038_flair.nii
   BraTS20_Training_038_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_014
   BraTS20_Training_014_flair.nii
   BraTS20_Training_014_seg.nii
   BraTS20_Training_014_t1ce.nii
   BraTS20_Training_014_t2.nii
   BraTS20_Training_014_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_267
   BraTS20_Training_267_t1ce.nii
   BraTS20_Training_267_flair.nii
   BraTS20_Training_267_t1.nii
   BraTS20_Training_267_seg.nii
   BraTS20_Training_267_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_240
   BraTS20_Training_240_t2.nii
   BraTS20_Training_240_flair.nii
   BraTS20_Training_240_t1ce.nii
   BraTS20_Training_240_t1.nii
   BraTS20_Training_240_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_101
   BraTS20_Training_101_seg.nii
   BraTS20_Training_101_t1ce.nii
   BraTS20_Training_101_t1.nii
   BraTS20_Training_101_flair.nii
   BraTS20_Training_101_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_068
   BraTS20_Training_068_t1.nii
   BraTS20_Training_068_seg.nii
   BraTS20_Training_068_flair.nii
   BraTS20_Training_068_t1ce.nii
   BraTS20_Training_068_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_347
   BraTS20_Training_347_seg.nii
   BraTS20_Training_347_flair.nii
   BraTS20_Training_347_t1ce.nii
   BraTS20_Training_347_t2.nii
   BraTS20_Training_347_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_343
   BraTS20_Training_343_flair.nii
   BraTS20_Training_343_t2.nii
   BraTS20_Training_343_seg.nii
   BraTS20_Training_343_t1ce.nii
   BraTS20_Training_343_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_175
   BraTS20_Training_175_t2.nii
   BraTS20_Training_175_flair.nii
   BraTS20_Training_175_t1ce.nii
   BraTS20_Training_175_seg.nii
   BraTS20_Training_175_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_174
   BraTS20_Training_174_t1.nii
   BraTS20_Training_174_flair.nii
   BraTS20_Training_174_t2.nii
   BraTS20_Training_174_seg.nii
   BraTS20_Training_174_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_336
   BraTS20_Training_336_seg.nii
   BraTS20_Training_336_flair.nii
   BraTS20_Training_336_t1ce.nii
   BraTS20_Training_336_t1.nii
   BraTS20_Training_336_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_192
   BraTS20_Training_192_t2.nii
   BraTS20_Training_192_flair.nii
   BraTS20_Training_192_seg.nii
   BraTS20_Training_192_t1ce.nii
   BraTS20_Training_192_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_012
   BraTS20_Training_012_t2.nii
   BraTS20_Training_012_flair.nii
   BraTS20_Training_012_t1ce.nii
   BraTS20_Training_012_t1.nii
   BraTS20_Training_012_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_366
   BraTS20_Training_366_t1.nii
   BraTS20_Training_366_t1ce.nii
   BraTS20_Training_366_flair.nii
   BraTS20_Training_366_t2.nii
   BraTS20_Training_366_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_315
   BraTS20_Training_315_t1ce.nii
   BraTS20_Training_315_seg.nii
   BraTS20_Training_315_flair.nii
   BraTS20_Training_315_t2.nii
   BraTS20_Training_315_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_229
   BraTS20_Training_229_t1ce.nii
   BraTS20_Training_229_t1.nii
   BraTS20_Training_229_seg.nii
   BraTS20_Training_229_flair.nii
   BraTS20_Training_229_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_104
   BraTS20_Training_104_t1ce.nii
   BraTS20_Training_104_t2.nii
   BraTS20_Training_104_seg.nii
   BraTS20_Training_104_flair.nii
   BraTS20_Training_104_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_032
   BraTS20_Training_032_t2.nii
   BraTS20_Training_032_t1ce.nii
   BraTS20_Training_032_flair.nii
   BraTS20_Training_032_t1.nii
   BraTS20_Training_032_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_305
   BraTS20_Training_305_flair.nii
   BraTS20_Training_305_t1ce.nii
   BraTS20_Training_305_seg.nii
   BraTS20_Training_305_t2.nii
   BraTS20_Training_305_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_025
   BraTS20_Training_025_t1ce.nii
   BraTS20_Training_025_flair.nii
   BraTS20_Training_025_seg.nii
   BraTS20_Training_025_t2.nii
   BraTS20_Training_025_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_071
   BraTS20_Training_071_t1.nii
   BraTS20_Training_071_seg.nii
   BraTS20_Training_071_flair.nii
   BraTS20_Training_071_t1ce.nii
   BraTS20_Training_071_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_335
   BraTS20_Training_335_t2.nii
   BraTS20_Training_335_flair.nii
   BraTS20_Training_335_seg.nii
   BraTS20_Training_335_t1.nii
   BraTS20_Training_335_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_132
   BraTS20_Training_132_seg.nii
   BraTS20_Training_132_t2.nii
   BraTS20_Training_132_flair.nii
   BraTS20_Training_132_t1.nii
   BraTS20_Training_132_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_066
   BraTS20_Training_066_t1ce.nii
   BraTS20_Training_066_t2.nii
   BraTS20_Training_066_t1.nii
   BraTS20_Training_066_seg.nii
   BraTS20_Training_066_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_194
   BraTS20_Training_194_flair.nii
   BraTS20_Training_194_t1ce.nii
   BraTS20_Training_194_t2.nii
   BraTS20_Training_194_seg.nii
   BraTS20_Training_194_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_036
   BraTS20_Training_036_t1.nii
   BraTS20_Training_036_t2.nii
   BraTS20_Training_036_t1ce.nii
   BraTS20_Training_036_seg.nii
   BraTS20_Training_036_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_349
   BraTS20_Training_349_t2.nii
   BraTS20_Training_349_t1.nii
   BraTS20_Training_349_seg.nii
   BraTS20_Training_349_t1ce.nii
   BraTS20_Training_349_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_084
   BraTS20_Training_084_t1.nii
   BraTS20_Training_084_seg.nii
   BraTS20_Training_084_t2.nii
   BraTS20_Training_084_flair.nii
   BraTS20_Training_084_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_002
   BraTS20_Training_002_flair.nii
   BraTS20_Training_002_seg.nii
   BraTS20_Training_002_t1ce.nii
   BraTS20_Training_002_t2.nii
   BraTS20_Training_002_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_211
   BraTS20_Training_211_t1ce.nii
   BraTS20_Training_211_seg.nii
   BraTS20_Training_211_t1.nii
   BraTS20_Training_211_t2.nii
   BraTS20_Training_211_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_203
   BraTS20_Training_203_flair.nii
   BraTS20_Training_203_t2.nii
   BraTS20_Training_203_seg.nii
   BraTS20_Training_203_t1ce.nii
   BraTS20_Training_203_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_345
   BraTS20_Training_345_seg.nii
   BraTS20_Training_345_t2.nii
   BraTS20_Training_345_t1ce.nii
   BraTS20_Training_345_flair.nii
   BraTS20_Training_345_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_128
   BraTS20_Training_128_flair.nii
   BraTS20_Training_128_seg.nii
   BraTS20_Training_128_t1.nii
   BraTS20_Training_128_t1ce.nii
   BraTS20_Training_128_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_074
   BraTS20_Training_074_t2.nii
   BraTS20_Training_074_t1ce.nii
   BraTS20_Training_074_seg.nii
   BraTS20_Training_074_t1.nii
   BraTS20_Training_074_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_201
   BraTS20_Training_201_flair.nii
   BraTS20_Training_201_t1ce.nii
   BraTS20_Training_201_seg.nii
   BraTS20_Training_201_t1.nii
   BraTS20_Training_201_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_193
   BraTS20_Training_193_seg.nii
   BraTS20_Training_193_t2.nii
   BraTS20_Training_193_flair.nii
   BraTS20_Training_193_t1.nii
   BraTS20_Training_193_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_061
   BraTS20_Training_061_seg.nii
   BraTS20_Training_061_flair.nii
   BraTS20_Training_061_t2.nii
   BraTS20_Training_061_t1.nii
   BraTS20_Training_061_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_352
   BraTS20_Training_352_seg.nii
   BraTS20_Training_352_t1ce.nii
   BraTS20_Training_352_t1.nii
   BraTS20_Training_352_t2.nii
   BraTS20_Training_352_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_088
   BraTS20_Training_088_flair.nii
   BraTS20_Training_088_t1ce.nii
   BraTS20_Training_088_seg.nii
   BraTS20_Training_088_t1.nii
   BraTS20_Training_088_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_098
   BraTS20_Training_098_t2.nii
   BraTS20_Training_098_seg.nii
   BraTS20_Training_098_t1.nii
   BraTS20_Training_098_t1ce.nii
   BraTS20_Training_098_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_367
   BraTS20_Training_367_t1.nii
   BraTS20_Training_367_flair.nii
   BraTS20_Training_367_t2.nii
   BraTS20_Training_367_seg.nii
   BraTS20_Training_367_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_242
   BraTS20_Training_242_t1.nii
   BraTS20_Training_242_flair.nii
   BraTS20_Training_242_t2.nii
   BraTS20_Training_242_t1ce.nii
   BraTS20_Training_242_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_129
   BraTS20_Training_129_t1ce.nii
   BraTS20_Training_129_t1.nii
   BraTS20_Training_129_t2.nii
   BraTS20_Training_129_flair.nii
   BraTS20_Training_129_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_226
   BraTS20_Training_226_t2.nii
   BraTS20_Training_226_t1ce.nii
   BraTS20_Training_226_t1.nii
   BraTS20_Training_226_flair.nii
   BraTS20_Training_226_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_137
   BraTS20_Training_137_flair.nii
   BraTS20_Training_137_seg.nii
   BraTS20_Training_137_t1ce.nii
   BraTS20_Training_137_t1.nii
   BraTS20_Training_137_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_186
   BraTS20_Training_186_t1.nii
   BraTS20_Training_186_seg.nii
   BraTS20_Training_186_t2.nii
   BraTS20_Training_186_t1ce.nii
   BraTS20_Training_186_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_160
   BraTS20_Training_160_flair.nii
   BraTS20_Training_160_t1ce.nii
   BraTS20_Training_160_t2.nii
   BraTS20_Training_160_t1.nii
   BraTS20_Training_160_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_199
   BraTS20_Training_199_flair.nii
   BraTS20_Training_199_t1ce.nii
   BraTS20_Training_199_t1.nii
   BraTS20_Training_199_t2.nii
   BraTS20_Training_199_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_183
   BraTS20_Training_183_t1ce.nii
   BraTS20_Training_183_t1.nii
   BraTS20_Training_183_t2.nii
   BraTS20_Training_183_seg.nii
   BraTS20_Training_183_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_262
   BraTS20_Training_262_seg.nii
   BraTS20_Training_262_t2.nii
   BraTS20_Training_262_t1.nii
   BraTS20_Training_262_t1ce.nii
   BraTS20_Training_262_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_298
   BraTS20_Training_298_t1.nii
   BraTS20_Training_298_seg.nii
   BraTS20_Training_298_t1ce.nii
   BraTS20_Training_298_t2.nii
   BraTS20_Training_298_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_232
   BraTS20_Training_232_t1ce.nii
   BraTS20_Training_232_seg.nii
   BraTS20_Training_232_t1.nii
   BraTS20_Training_232_t2.nii
   BraTS20_Training_232_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_276
   BraTS20_Training_276_flair.nii
   BraTS20_Training_276_t1ce.nii
   BraTS20_Training_276_t2.nii
   BraTS20_Training_276_t1.nii
   BraTS20_Training_276_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_171
   BraTS20_Training_171_t2.nii
   BraTS20_Training_171_seg.nii
   BraTS20_Training_171_t1.nii
   BraTS20_Training_171_flair.nii
   BraTS20_Training_171_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_261
   BraTS20_Training_261_seg.nii
   BraTS20_Training_261_t2.nii
   BraTS20_Training_261_t1ce.nii
   BraTS20_Training_261_flair.nii
   BraTS20_Training_261_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_187
   BraTS20_Training_187_t1ce.nii
   BraTS20_Training_187_t2.nii
   BraTS20_Training_187_t1.nii
   BraTS20_Training_187_flair.nii
   BraTS20_Training_187_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_021
   BraTS20_Training_021_t1.nii
   BraTS20_Training_021_seg.nii
   BraTS20_Training_021_flair.nii
   BraTS20_Training_021_t1ce.nii
   BraTS20_Training_021_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_362
   BraTS20_Training_362_flair.nii
   BraTS20_Training_362_seg.nii
   BraTS20_Training_362_t1.nii
   BraTS20_Training_362_t2.nii
   BraTS20_Training_362_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_360
   BraTS20_Training_360_flair.nii
   BraTS20_Training_360_t1ce.nii
   BraTS20_Training_360_t2.nii
   BraTS20_Training_360_seg.nii
   BraTS20_Training_360_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_103
   BraTS20_Training_103_t2.nii
   BraTS20_Training_103_t1.nii
   BraTS20_Training_103_seg.nii
   BraTS20_Training_103_flair.nii
   BraTS20_Training_103_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_069
   BraTS20_Training_069_t1ce.nii
   BraTS20_Training_069_seg.nii
   BraTS20_Training_069_t1.nii
   BraTS20_Training_069_t2.nii
   BraTS20_Training_069_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_047
   BraTS20_Training_047_t1.nii
   BraTS20_Training_047_t1ce.nii
   BraTS20_Training_047_flair.nii
   BraTS20_Training_047_t2.nii
   BraTS20_Training_047_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_168
   BraTS20_Training_168_t2.nii
   BraTS20_Training_168_seg.nii
   BraTS20_Training_168_t1ce.nii
   BraTS20_Training_168_flair.nii
   BraTS20_Training_168_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_301
   BraTS20_Training_301_flair.nii
   BraTS20_Training_301_t1ce.nii
   BraTS20_Training_301_t1.nii
   BraTS20_Training_301_seg.nii
   BraTS20_Training_301_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_265
   BraTS20_Training_265_seg.nii
   BraTS20_Training_265_t1ce.nii
   BraTS20_Training_265_flair.nii
   BraTS20_Training_265_t1.nii
   BraTS20_Training_265_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_130
   BraTS20_Training_130_seg.nii
   BraTS20_Training_130_t1ce.nii
   BraTS20_Training_130_flair.nii
   BraTS20_Training_130_t2.nii
   BraTS20_Training_130_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_338
   BraTS20_Training_338_t2.nii
   BraTS20_Training_338_t1ce.nii
   BraTS20_Training_338_seg.nii
   BraTS20_Training_338_flair.nii
   BraTS20_Training_338_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_264
   BraTS20_Training_264_t2.nii
   BraTS20_Training_264_t1ce.nii
   BraTS20_Training_264_t1.nii
   BraTS20_Training_264_seg.nii
   BraTS20_Training_264_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_237
   BraTS20_Training_237_flair.nii
   BraTS20_Training_237_t1.nii
   BraTS20_Training_237_t2.nii
   BraTS20_Training_237_seg.nii
   BraTS20_Training_237_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_221
   BraTS20_Training_221_t1.nii
   BraTS20_Training_221_flair.nii
   BraTS20_Training_221_t1ce.nii
   BraTS20_Training_221_t2.nii
   BraTS20_Training_221_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_049
   BraTS20_Training_049_t1.nii
   BraTS20_Training_049_seg.nii
   BraTS20_Training_049_t2.nii
   BraTS20_Training_049_t1ce.nii
   BraTS20_Training_049_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_191
   BraTS20_Training_191_flair.nii
   BraTS20_Training_191_seg.nii
   BraTS20_Training_191_t1ce.nii
   BraTS20_Training_191_t2.nii
   BraTS20_Training_191_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_296
   BraTS20_Training_296_flair.nii
   BraTS20_Training_296_seg.nii
   BraTS20_Training_296_t1ce.nii
   BraTS20_Training_296_t1.nii
   BraTS20_Training_296_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_323
   BraTS20_Training_323_t2.nii
   BraTS20_Training_323_flair.nii
   BraTS20_Training_323_t1ce.nii
   BraTS20_Training_323_t1.nii
   BraTS20_Training_323_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_059
   BraTS20_Training_059_flair.nii
   BraTS20_Training_059_seg.nii
   BraTS20_Training_059_t1ce.nii
   BraTS20_Training_059_t2.nii
   BraTS20_Training_059_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_111
   BraTS20_Training_111_t2.nii
   BraTS20_Training_111_seg.nii
   BraTS20_Training_111_t1ce.nii
   BraTS20_Training_111_flair.nii
   BraTS20_Training_111_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_077
   BraTS20_Training_077_flair.nii
   BraTS20_Training_077_t1.nii
   BraTS20_Training_077_t1ce.nii
   BraTS20_Training_077_t2.nii
   BraTS20_Training_077_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_020
   BraTS20_Training_020_seg.nii
   BraTS20_Training_020_t1.nii
   BraTS20_Training_020_t2.nii
   BraTS20_Training_020_t1ce.nii
   BraTS20_Training_020_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_085
   BraTS20_Training_085_t1.nii
   BraTS20_Training_085_t2.nii
   BraTS20_Training_085_flair.nii
   BraTS20_Training_085_t1ce.nii
   BraTS20_Training_085_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_008
   BraTS20_Training_008_flair.nii
   BraTS20_Training_008_seg.nii
   BraTS20_Training_008_t1.nii
   BraTS20_Training_008_t1ce.nii
   BraTS20_Training_008_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_134
   BraTS20_Training_134_t1ce.nii
   BraTS20_Training_134_t2.nii
   BraTS20_Training_134_seg.nii
   BraTS20_Training_134_t1.nii
   BraTS20_Training_134_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_018
   BraTS20_Training_018_t1.nii
   BraTS20_Training_018_t1ce.nii
   BraTS20_Training_018_t2.nii
   BraTS20_Training_018_flair.nii
   BraTS20_Training_018_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_278
   BraTS20_Training_278_t1ce.nii
   BraTS20_Training_278_t2.nii
   BraTS20_Training_278_flair.nii
   BraTS20_Training_278_seg.nii
   BraTS20_Training_278_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_291
   BraTS20_Training_291_seg.nii
   BraTS20_Training_291_t2.nii
   BraTS20_Training_291_t1.nii
   BraTS20_Training_291_t1ce.nii
   BraTS20_Training_291_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_164
   BraTS20_Training_164_t1ce.nii
   BraTS20_Training_164_seg.nii
   BraTS20_Training_164_flair.nii
   BraTS20_Training_164_t2.nii
   BraTS20_Training_164_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_007
   BraTS20_Training_007_t1ce.nii
   BraTS20_Training_007_seg.nii
   BraTS20_Training_007_t1.nii
   BraTS20_Training_007_t2.nii
   BraTS20_Training_007_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_013
   BraTS20_Training_013_t2.nii
   BraTS20_Training_013_t1.nii
   BraTS20_Training_013_seg.nii
   BraTS20_Training_013_flair.nii
   BraTS20_Training_013_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_348
   BraTS20_Training_348_seg.nii
   BraTS20_Training_348_t1ce.nii
   BraTS20_Training_348_t2.nii
   BraTS20_Training_348_flair.nii
   BraTS20_Training_348_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_024
   BraTS20_Training_024_t2.nii
   BraTS20_Training_024_seg.nii
   BraTS20_Training_024_flair.nii
   BraTS20_Training_024_t1ce.nii
   BraTS20_Training_024_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_087
   BraTS20_Training_087_t1ce.nii
   BraTS20_Training_087_t1.nii
   BraTS20_Training_087_t2.nii
   BraTS20_Training_087_seg.nii
   BraTS20_Training_087_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_151
   BraTS20_Training_151_t1ce.nii
   BraTS20_Training_151_seg.nii
   BraTS20_Training_151_t1.nii
   BraTS20_Training_151_t2.nii
   BraTS20_Training_151_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_051
   BraTS20_Training_051_t2.nii
   BraTS20_Training_051_seg.nii
   BraTS20_Training_051_t1.nii
   BraTS20_Training_051_flair.nii
   BraTS20_Training_051_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_224
   BraTS20_Training_224_seg.nii
   BraTS20_Training_224_t2.nii
   BraTS20_Training_224_t1ce.nii
   BraTS20_Training_224_flair.nii
   BraTS20_Training_224_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_288
   BraTS20_Training_288_t1.nii
   BraTS20_Training_288_t2.nii
   BraTS20_Training_288_flair.nii
   BraTS20_Training_288_t1ce.nii
   BraTS20_Training_288_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_082
   BraTS20_Training_082_t2.nii
   BraTS20_Training_082_seg.nii
   BraTS20_Training_082_flair.nii
   BraTS20_Training_082_t1ce.nii
   BraTS20_Training_082_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_190
   BraTS20_Training_190_seg.nii
   BraTS20_Training_190_t2.nii
   BraTS20_Training_190_flair.nii
   BraTS20_Training_190_t1ce.nii
   BraTS20_Training_190_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_019
   BraTS20_Training_019_flair.nii
   BraTS20_Training_019_t2.nii
   BraTS20_Training_019_seg.nii
   BraTS20_Training_019_t1ce.nii
   BraTS20_Training_019_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_236
   BraTS20_Training_236_t1ce.nii
   BraTS20_Training_236_flair.nii
   BraTS20_Training_236_seg.nii
   BraTS20_Training_236_t1.nii
   BraTS20_Training_236_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_325
   BraTS20_Training_325_t1.nii
   BraTS20_Training_325_t2.nii
   BraTS20_Training_325_flair.nii
   BraTS20_Training_325_t1ce.nii
   BraTS20_Training_325_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_231
   BraTS20_Training_231_t2.nii
   BraTS20_Training_231_t1.nii
   BraTS20_Training_231_flair.nii
   BraTS20_Training_231_t1ce.nii
   BraTS20_Training_231_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_009
   BraTS20_Training_009_t2.nii
   BraTS20_Training_009_seg.nii
   BraTS20_Training_009_t1ce.nii
   BraTS20_Training_009_t1.nii
   BraTS20_Training_009_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_369
   BraTS20_Training_369_flair.nii
   BraTS20_Training_369_t2.nii
   BraTS20_Training_369_t1.nii
   BraTS20_Training_369_seg.nii
   BraTS20_Training_369_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_270
   BraTS20_Training_270_t1.nii
   BraTS20_Training_270_t2.nii
   BraTS20_Training_270_seg.nii
   BraTS20_Training_270_t1ce.nii
   BraTS20_Training_270_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_039
   BraTS20_Training_039_t1ce.nii
   BraTS20_Training_039_seg.nii
   BraTS20_Training_039_t2.nii
   BraTS20_Training_039_t1.nii
   BraTS20_Training_039_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_327
   BraTS20_Training_327_seg.nii
   BraTS20_Training_327_t1ce.nii
   BraTS20_Training_327_t1.nii
   BraTS20_Training_327_t2.nii
   BraTS20_Training_327_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_308
   BraTS20_Training_308_seg.nii
   BraTS20_Training_308_t2.nii
   BraTS20_Training_308_t1.nii
   BraTS20_Training_308_flair.nii
   BraTS20_Training_308_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_131
   BraTS20_Training_131_seg.nii
   BraTS20_Training_131_t1.nii
   BraTS20_Training_131_t2.nii
   BraTS20_Training_131_flair.nii
   BraTS20_Training_131_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_340
   BraTS20_Training_340_t2.nii
   BraTS20_Training_340_flair.nii
   BraTS20_Training_340_t1ce.nii
   BraTS20_Training_340_seg.nii
   BraTS20_Training_340_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_135
   BraTS20_Training_135_t2.nii
   BraTS20_Training_135_seg.nii
   BraTS20_Training_135_t1.nii
   BraTS20_Training_135_flair.nii
   BraTS20_Training_135_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_091
   BraTS20_Training_091_flair.nii
   BraTS20_Training_091_t1ce.nii
   BraTS20_Training_091_t1.nii
   BraTS20_Training_091_t2.nii
   BraTS20_Training_091_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_165
   BraTS20_Training_165_t2.nii
   BraTS20_Training_165_t1.nii
   BraTS20_Training_165_flair.nii
   BraTS20_Training_165_seg.nii
   BraTS20_Training_165_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_217
   BraTS20_Training_217_t2.nii
   BraTS20_Training_217_t1ce.nii
   BraTS20_Training_217_flair.nii
   BraTS20_Training_217_seg.nii
   BraTS20_Training_217_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_120
   BraTS20_Training_120_t1ce.nii
   BraTS20_Training_120_seg.nii
   BraTS20_Training_120_t2.nii
   BraTS20_Training_120_t1.nii
   BraTS20_Training_120_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_139
   BraTS20_Training_139_t2.nii
   BraTS20_Training_139_t1.nii
   BraTS20_Training_139_seg.nii
   BraTS20_Training_139_flair.nii
   BraTS20_Training_139_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_277
   BraTS20_Training_277_t1ce.nii
   BraTS20_Training_277_t1.nii
   BraTS20_Training_277_flair.nii
   BraTS20_Training_277_t2.nii
   BraTS20_Training_277_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_356
   BraTS20_Training_356_t1.nii
   BraTS20_Training_356_t2.nii
   BraTS20_Training_356_flair.nii
   BraTS20_Training_356_t1ce.nii
   BraTS20_Training_356_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_269
   BraTS20_Training_269_t1.nii
   BraTS20_Training_269_flair.nii
   BraTS20_Training_269_t2.nii
   BraTS20_Training_269_t1ce.nii
   BraTS20_Training_269_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_006
   BraTS20_Training_006_t2.nii
   BraTS20_Training_006_t1.nii
   BraTS20_Training_006_t1ce.nii
   BraTS20_Training_006_flair.nii
   BraTS20_Training_006_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_028
   BraTS20_Training_028_t1.nii
   BraTS20_Training_028_seg.nii
   BraTS20_Training_028_t2.nii
   BraTS20_Training_028_t1ce.nii
   BraTS20_Training_028_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_017
   BraTS20_Training_017_flair.nii
   BraTS20_Training_017_seg.nii
   BraTS20_Training_017_t1.nii
   BraTS20_Training_017_t1ce.nii
   BraTS20_Training_017_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_255
   BraTS20_Training_255_t2.nii
   BraTS20_Training_255_flair.nii
   BraTS20_Training_255_t1ce.nii
   BraTS20_Training_255_t1.nii
   BraTS20_Training_255_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_197
   BraTS20_Training_197_t2.nii
   BraTS20_Training_197_seg.nii
   BraTS20_Training_197_flair.nii
   BraTS20_Training_197_t1.nii
   BraTS20_Training_197_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_144
   BraTS20_Training_144_flair.nii
   BraTS20_Training_144_seg.nii
   BraTS20_Training_144_t1.nii
   BraTS20_Training_144_t2.nii
   BraTS20_Training_144_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_313
   BraTS20_Training_313_t1ce.nii
   BraTS20_Training_313_t2.nii
   BraTS20_Training_313_t1.nii
   BraTS20_Training_313_seg.nii
   BraTS20_Training_313_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_112
   BraTS20_Training_112_t1ce.nii
   BraTS20_Training_112_t2.nii
   BraTS20_Training_112_flair.nii
   BraTS20_Training_112_seg.nii
   BraTS20_Training_112_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_283
   BraTS20_Training_283_t1ce.nii
   BraTS20_Training_283_flair.nii
   BraTS20_Training_283_t2.nii
   BraTS20_Training_283_t1.nii
   BraTS20_Training_283_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_050
   BraTS20_Training_050_t1ce.nii
   BraTS20_Training_050_t1.nii
   BraTS20_Training_050_seg.nii
   BraTS20_Training_050_t2.nii
   BraTS20_Training_050_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_149
   BraTS20_Training_149_t2.nii
   BraTS20_Training_149_seg.nii
   BraTS20_Training_149_t1.nii
   BraTS20_Training_149_t1ce.nii
   BraTS20_Training_149_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_072
   BraTS20_Training_072_t2.nii
   BraTS20_Training_072_t1.nii
   BraTS20_Training_072_seg.nii
   BraTS20_Training_072_flair.nii
   BraTS20_Training_072_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_118
   BraTS20_Training_118_t1.nii
   BraTS20_Training_118_t2.nii
   BraTS20_Training_118_flair.nii
   BraTS20_Training_118_seg.nii
   BraTS20_Training_118_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_260
   BraTS20_Training_260_t1.nii
   BraTS20_Training_260_t1ce.nii
   BraTS20_Training_260_seg.nii
   BraTS20_Training_260_flair.nii
   BraTS20_Training_260_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_290
   BraTS20_Training_290_t1ce.nii
   BraTS20_Training_290_flair.nii
   BraTS20_Training_290_t2.nii
   BraTS20_Training_290_t1.nii
   BraTS20_Training_290_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_042
   BraTS20_Training_042_t2.nii
   BraTS20_Training_042_t1.nii
   BraTS20_Training_042_t1ce.nii
   BraTS20_Training_042_flair.nii
   BraTS20_Training_042_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_177
   BraTS20_Training_177_seg.nii
   BraTS20_Training_177_t2.nii
   BraTS20_Training_177_t1ce.nii
   BraTS20_Training_177_t1.nii
   BraTS20_Training_177_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_126
   BraTS20_Training_126_flair.nii
   BraTS20_Training_126_t2.nii
   BraTS20_Training_126_t1ce.nii
   BraTS20_Training_126_t1.nii
   BraTS20_Training_126_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_317
   BraTS20_Training_317_seg.nii
   BraTS20_Training_317_flair.nii
   BraTS20_Training_317_t1.nii
   BraTS20_Training_317_t1ce.nii
   BraTS20_Training_317_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_246
   BraTS20_Training_246_t1ce.nii
   BraTS20_Training_246_t1.nii
   BraTS20_Training_246_flair.nii
   BraTS20_Training_246_t2.nii
   BraTS20_Training_246_seg.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_181
   BraTS20_Training_181_t2.nii
   BraTS20_Training_181_seg.nii
   BraTS20_Training_181_flair.nii
   BraTS20_Training_181_t1ce.nii
   BraTS20_Training_181_t1.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_178
   BraTS20_Training_178_t2.nii
   BraTS20_Training_178_t1.nii
   BraTS20_Training_178_t1ce.nii
   BraTS20_Training_178_seg.nii
   BraTS20_Training_178_flair.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_355
   BraTS20_Training_355_flair.nii
   W39_1998.09.19_Segm.nii
   BraTS20_Training_355_t2.nii
   BraTS20_Training_355_t1.nii
   BraTS20_Training_355_t1ce.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_285
   BraTS20_Training_285_seg.nii
   BraTS20_Training_285_t1.nii
   BraTS20_Training_285_t1ce.nii
   BraTS20_Training_285_flair.nii
   BraTS20_Training_285_t2.nii

Directory: /kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/BraTS20_Training_297
   BraTS20_Training_297_t2.nii
   BraTS20_Training_297_t1.nii
   BraTS20_Training_297_seg.nii
   BraTS20_Training_297_t1ce.nii
   BraTS20_Training_297_flair.nii
In [ ]:
# Dataset path
dataset_path = '/kaggle/input/brats20-dataset-training-validation/BraTS2020_TrainingData/MICCAI_BraTS2020_TrainingData/'
In [ ]:
# load and normalize a modality
def load_nifti_image(file_path):
    image = nib.load(file_path).get_fdata() # Extracting the image data as a NumPy array with floating-point values
    scaler = MinMaxScaler() # rescaling data between 0 and 1
    image = scaler.fit_transform(image.reshape(-1, 1)).reshape(image.shape)
    return image

# Load MRI images
def load_patient_images(patient_id, dataset_path):
  # Full path to patient data
  patient_path = os.path.join(dataset_path, patient_id)
  images = {
      "t1": load_nifti_image(os.path.join(patient_path, f"{patient_id}_t1.nii")),
      "t1ce": load_nifti_image(os.path.join(patient_path, f"{patient_id}_t1ce.nii")),
      "t2": load_nifti_image(os.path.join(patient_path, f"{patient_id}_t2.nii")),
      "flair": load_nifti_image(os.path.join(patient_path, f"{patient_id}_flair.nii")),
      # Load segmentation mask (Without normalization)
      "seg": nib.load(os.path.join(patient_path, f"{patient_id}_seg.nii")).get_fdata()
  }
  return images
In [ ]:
def visualize_middle_slice(images):
    slice_idx = next(iter(images.values())).shape[2] // 2
    modalities = list(images.keys())
    num_modalities = len(modalities)
    plt.figure(figsize=(12, 8))
    for i, modality in enumerate(modalities):
        plt.subplot(2, 3, i + 1)
        cmap = 'gray'
        plt.imshow(images[modality][:, :, slice_idx], cmap=cmap)
        plt.title(modality)
        plt.axis('off')

    plt.subplot(2, 3, 6)
    plt.imshow(images['seg'][:, :, slice_idx], cmap='viridis')
    plt.title('Segmentation')
    plt.axis('off')
    plt.tight_layout()
    plt.show()
    print(f"Shape of {modalities[0]}: {images[modalities[0]].shape}")
    print(f"slice index = {slice_idx}")

# Choose the patient folder as an example
patient_id = "BraTS20_Training_100"
# Load patient data
patient_data = load_patient_images(patient_id, dataset_path)
# Visualization patient data
visualize_middle_slice(patient_data)
In [ ]:
def visualize_middle_slice(images):
    slice_idx = next(iter(images.values())).shape[2] // 2
    modalities = list(images.keys())
    num_modalities = len(modalities)
    plt.figure(figsize=(12, 8))
    for i, modality in enumerate(modalities):
        plt.subplot(2, 3, i + 1)
        cmap = 'gray'
        plt.imshow(images[modality][:, :, slice_idx], cmap=cmap)
        plt.title(modality)
        plt.axis('off')

    plt.subplot(2, 3, 6)
    plt.imshow(images['seg'][:, :, slice_idx], cmap='viridis')
    plt.title('Segmentation')
    plt.axis('off')
    plt.tight_layout()
    plt.show()
    print(f"Shape of {modalities[0]}: {images[modalities[0]].shape}")
    print(f"slice index = {slice_idx}")

# Choose the patient folder as an example
patient_id = "BraTS20_Training_100"
# Load patient data
patient_data = load_patient_images(patient_id, dataset_path)
# Visualization patient data
visualize_middle_slice(patient_data)
No description has been provided for this image
Shape of t1: (240, 240, 155)
slice index = 77

3D Brain Tumor Visualization with Plotly¶

Interactive 3D demo live 👉 https://t.co/8WimhfZKKn

Setting up this 3D visualization on Hugging Face Spaces requires the following files:

requirements.txt

app.py

In [ ]:
! pip install plotly
import plotly.graph_objects as go
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (5.24.1)
Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly) (9.1.2)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from plotly) (24.2)
In [ ]:
! pip install plotly scikit-image
from skimage import measure
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (5.24.1)
Requirement already satisfied: scikit-image in /usr/local/lib/python3.11/dist-packages (0.25.2)
Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly) (9.1.2)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from plotly) (24.2)
Requirement already satisfied: numpy>=1.24 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (2.0.2)
Requirement already satisfied: scipy>=1.11.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (1.15.3)
Requirement already satisfied: networkx>=3.0 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (3.4.2)
Requirement already satisfied: pillow>=10.1 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (11.2.1)
Requirement already satisfied: imageio!=2.35.0,>=2.33 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (2.37.0)
Requirement already satisfied: tifffile>=2022.8.12 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (2025.5.10)
Requirement already satisfied: lazy-loader>=0.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image) (0.4)
In [ ]:
# Extract tumor regions from segmentation mask
# This creates a binary mask: True where there is tumor (seg > 0), False elsewhere
tumor_mask = (patient_data['seg'] > 0)
# Generate a 3D mesh from the tumor mask using the marching cubes algorithm
# This converts the tumor volume into vertices and faces for 3D surface rendering
# Face is a triangle that connects 3 points (vertices) to form part of a 3D mesh surface
verts_tumor, faces_tumor, _, values_tumor = measure.marching_cubes(tumor_mask, level=0)
# Extract brain structure
# This creates a binary mask: True where T1 image is background (t1 == 0)
brain_mask = (patient_data['t1'] == 0)
# Generate a mesh from the brain mask
# Creates vertices and faces to form a 3D surface of the brain outline
verts_brain, faces_brain, _, _ = measure.marching_cubes(brain_mask, level=0)
# Create an empty 3D Plotly figure
fig = go.Figure()
# Add brain structure mesh
# Use Mesh3d to visualize the brain's outer boundary in 3D
fig.add_trace(go.Mesh3d(
    x=verts_brain[:, 0],  # X-coordinates of all vertices
    y=verts_brain[:, 1],  # Y-coordinates
    z=verts_brain[:, 2],  # Z-coordinates
    i=faces_brain[:, 0],  # First vertex index of each triangle
    j=faces_brain[:, 1],  # Second vertex index
    k=faces_brain[:, 2],  # Third vertex index
    color='pink',         # Solid color for the brain surface
    opacity=0.1,          # Very transparent to keep focus on tumor
    name='Brain'          # Legend label
))
In [ ]:
# Add tumor mesh with depth-based coloring (Viridis colormap)
# This makes the tumor visible with colors based on Z-depth
fig.add_trace(go.Mesh3d(
    x=verts_tumor[:, 0],           # X-coordinates of tumor surface
    y=verts_tumor[:, 1],           # Y-coordinates
    z=verts_tumor[:, 2],           # Z-coordinates
    i=faces_tumor[:, 0],           # First index of each triangle
    j=faces_tumor[:, 1],           # Second index
    k=faces_tumor[:, 2],           # Third index
    intensity=verts_tumor[:, 2],   # Color the surface based on Z-depth
    colorscale='Viridis',          # Apply Viridis colormap
    opacity=0.9,                   # High opacity to emphasize tumor structure
    name='Tumor'                   # Legend label
))
# Set figure layout and scene details
fig.update_layout( 
    title='3D Tumor Visualization with Brain Context', # Title of the plot
    scene=dict(  # Axis and aspect ratio settings
        xaxis_title='Width',   # Label X-axis
        yaxis_title='Height',  # Label Y-axis
        zaxis_title='Depth',   # Label Z-axis
        aspectratio=dict(x=1, y=1, z=0.7) # Shape ratio of the 3D space
    ),
    width=800, # Width of the plot window
    height=800 # Height of the plot window
)
# Render the plot
fig.show()
In [ ]:
slice_idx = 77
plt.figure(figsize=(10, 8))

# Define views with different modalities and orientations
views = {
    "T1ce - Transverse": patient_data['t1ce'][:, :, slice_idx],
    "T1ce - Frontal": rotate(patient_data['t1ce'][:, slice_idx, :], 90, resize=True),
    "T1ce - Sagittal": rotate(patient_data['t1ce'][slice_idx, :, :], 90, resize=True),

    "Segmentation - Transverse": patient_data['seg'][:, :, slice_idx],
    "Segmentation - Frontal": rotate(patient_data['seg'][:, slice_idx, :], 90, resize=True),
    "Segmentation - Sagittal": rotate(patient_data['seg'][slice_idx, :, :], 90, resize=True),
}

# Plotting each view
num_views = len(views)
cols = 3
rows = num_views // cols + (num_views % cols > 0)

for i, (title, img) in enumerate(views.items(), 1):
    plt.subplot(rows, cols, i)
    cmap = "gray" if "Segmentation" not in title else "viridis"
    plt.imshow(img, cmap=cmap)
    plt.title(title)
    plt.axis('off')

plt.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
print("Unique values in segmentation slice:", np.unique(patient_data['seg'][:, :, slice_idx]))

# Define a colormap with four colors for four segmentation classes
cmap = mcolors.ListedColormap(['#440154', '#21918c', '#5ec962', '#fde725'])

norm = mcolors.BoundaryNorm([-0.5, 0.5, 1.5, 2.5, 3.5], cmap.N)

# The segmentation
plt.figure(figsize=(6, 6))
plt.imshow(patient_data['seg'][:, :, slice_idx], cmap=cmap, norm=norm)
plt.colorbar()
plt.title(f"Segmentation Visualization (Slice {slice_idx})")
plt.axis("off")
plt.show()
Unique values in segmentation slice: [0. 1. 2. 4.]
No description has been provided for this image

Split Dataset¶

The total number of patient samples in the dataset is 369. However, due to issues with one entry (sample_355), it was removed. The remaining 368 samples were used for model training and evaluation.

These 368 samples were split as follows:

  • Training set: 235 samples
  • Validation set: 74 samples
  • Test set: 59 samples
In [ ]:
# List all folders that start with 'BraTS20_Training_'
all_cases = sorted([d for d in os.listdir(dataset_path) if d.startswith("BraTS20_Training_")])

# Remove the problematic case
if 'BraTS20_Training_355' in all_cases:
    all_cases.remove('BraTS20_Training_355')
    cases = all_cases

print(f"Total Cases: {len(all_cases)}")
print(f"Total cases selected: {len(cases)}")
print("Example case IDs:", cases[:5])  # To check everything works well
Total Cases: 368
Total cases selected: 368
Example case IDs: ['BraTS20_Training_001', 'BraTS20_Training_002', 'BraTS20_Training_003', 'BraTS20_Training_004', 'BraTS20_Training_005']
In [ ]:
if 'BraTS20_Training_355' in cases :
  print(False)
else :
  print(True)
True
In [ ]:
# Unique labels across all cases
all_labels = set()

# Loop through all cases
for case in cases:
    seg_path = os.path.join(dataset_path, case, f"{case}_seg.nii")

    if os.path.exists(seg_path):  # Ensure the segmentation file exists
        seg = nib.load(seg_path).get_fdata()
        unique_labels = np.unique(seg)  # Get unique labels for this case
        all_labels.update(unique_labels)  # Add to the set

# Print the final unique labels found in the dataset
print("Unique labels in the entire dataset:", sorted(all_labels))
Unique labels in the entire dataset: [np.float64(0.0), np.float64(1.0), np.float64(2.0), np.float64(4.0)]
In [ ]:
# Split into Train, Validation, and Test
# 80% of the data for training and testing, 20% for validation
train_and_test_ids, val_ids = train_test_split(
    cases,
    test_size=0.2,
    random_state=42
)
# From that 70%, split 80% for training, 20% for testing
train_ids, test_ids = train_test_split(
    train_and_test_ids,
    test_size=0.2,
    random_state=42
)
print(f"Number of training cases: {len(train_ids)}")
print(f"Number of validation cases: {len(val_ids)}")
print(f"Number of test cases: {len(test_ids)}")
# Visualization of dataset Distribution
plt.bar(["Train","Valid","Test"],
        [len(train_ids), len(val_ids), len(test_ids)],
        align='center',
        color=[ '#13b9d3','#ffda27', '#ee363b'],
        label=["Train", "Valid", "Test"]
       )
plt.legend()
plt.ylabel('Number of Images')
plt.title('Data Distribution')
plt.show()
In [ ]:
# Split into Train, Validation, and Test
# 80% of the 300 patients for training and testing, 20% for validation
train_and_test_ids, val_ids = train_test_split(
    cases,
    test_size=0.2,
    random_state=42
)

# From that 70%, split 80% for training, 20% for testing
train_ids, test_ids = train_test_split(
    train_and_test_ids,
    test_size=0.2,
    random_state=42
)

print(f"Number of training cases: {len(train_ids)}")
print(f"Number of validation cases: {len(val_ids)}")
print(f"Number of test cases: {len(test_ids)}")

# Visualization of dataset Distribution
plt.bar(["Train","Valid","Test"],
        [len(train_ids), len(val_ids), len(test_ids)],
        align='center',
        color=[ '#13b9d3','#ffda27', '#ee363b'],
        label=["Train", "Valid", "Test"]
       )

plt.legend()

plt.ylabel('Number of Images')
plt.title('Data Distribution')

plt.show()
Number of training cases: 235
Number of validation cases: 74
Number of test cases: 59
No description has been provided for this image

Data Generator¶

To train a neural network effectively, we use MRI scans (denoted as X) from different patients, where each scan is a large 3D volume composed of many 2D slices. Correspondingly, we use segmentation masks (denoted as Y) that indicate tumor regions for each slice.

However, there are several challenges :

  • These 3D MRI scans are extremely large and can not be fully loaded into memory at once.

  • We only use specific 2D slices from the 3D volumes, namely slices 25 to 124, for training. The remaining slices contain little or no meaningful information and increase computational cost unnecessarily.

  • Each slice must be preprocessed before training: it should be resized to a standard shape and normalized (i.e., intensity values scaled between 0 and 1) to match the expected input format of the neural network.

  • The corresponding segmentation masks must be one-hot encoded, converting labeled values (0–4) into a multi-channel binary format suitable for multi-class segmentation tasks.

In [ ]:
def show_side_by_side_montages(patient_data):
    # Extract and process meaningful slices
    t1ce_slices = patient_data['t1ce'][40:140]
    seg_slices = patient_data['seg'][40:140, :, :]
    # Generate montages
    montage_t1ce = rotate(montage(t1ce_slices), 90, resize=True)
    montage_seg = rotate(montage(seg_slices), 90, resize=True)
    # Plot side by side
    plt.figure(figsize=(20, 10))
    plt.subplot(1, 2, 1)
    plt.imshow(montage_t1ce, cmap="gray")
    plt.title("Montage of Meaningful T1ce Slices")
    plt.axis("off")
    plt.subplot(1, 2, 2)
    plt.imshow(montage_seg, cmap="viridis")
    plt.title("Montage of Meaningful Segmentation Slices")
    plt.axis("off")
    plt.tight_layout()
    plt.show()
show_side_by_side_montages(patient_data)
In [ ]:
def show_side_by_side_montages(patient_data):
    # Extract and process meaningful slices
    t1ce_slices = patient_data['t1ce'][40:140]
    seg_slices = patient_data['seg'][40:140, :, :]
    # Generate montages
    montage_t1ce = rotate(montage(t1ce_slices), 90, resize=True)
    montage_seg = rotate(montage(seg_slices), 90, resize=True)
    # Plot side by side
    plt.figure(figsize=(20, 10))
    plt.subplot(1, 2, 1)
    plt.imshow(montage_t1ce, cmap="gray")
    plt.title("Montage of Meaningful T1ce Slices")
    plt.axis("off")
    plt.subplot(1, 2, 2)
    plt.imshow(montage_seg, cmap="viridis")
    plt.title("Montage of Meaningful Segmentation Slices")
    plt.axis("off")
    plt.tight_layout()
    plt.show()
show_side_by_side_montages(patient_data)
No description has been provided for this image

One-Hot Encoding of Segmentation Mask¶

One-Hot Encoding.jpg

We consider volumes from slice 25 to 124, as the visualization above shows that slices below 25 and above 124 are empty and do not provide meaningful data. Therefore, we exclude them to reduce computational cost.

In [ ]:
# Define segmentation-areas
segmentation_class = {
    0 : 'Background', # No Tumor
    1 : 'Necrotic Tumor Core',
    2 : 'Peritumoral Edema',
    3 : 'Enhancing Tumor' # original 4 that converted into 3
}

# Selecting constants
volume_slices = 100
start_volume = 25 # first slice of volume that we will include
img_size = 128

How Data Generator works ?¶

To answer to those issues , We used Data Generator that handles large datasets by efficiently load MRI volumes slice-by-slice, normalize, resize, and return them as batches for model training.

How It Works :

  1. Batching: The generator divides the dataset into batches using patient IDs, allowing for memory-efficient processing.

  2. On-the-fly loading: Instead of loading the entire dataset into memory, the generator loads only a small subset (a batch) just in time for training.

  3. Preprocessing: Each sample is preprocessed as it’s loaded:

    • Resized to the target shape

    • Normalized (intensity values scaled to [0, 1])

    • Labels are converted to one-hot encoded segmentation masks

  4. Returning batches: After processing, the generator returns:

    • Inputs (X): A batch of preprocessed MRI slices with shape (100, 128, 128, 2) representing T1ce and FLAIR modalities
    • Mask (Y): Corresponding one-hot encoded segmentation masks with shape (100, 128, 128, 4)
    • These batches are fed directly into the model’s fit() function during training.
  5. Epoch end handling: At the end of each training epoch, the generator shuffles the dataset to ensure the model sees the data in a different order in the next epoch, improving generalization.

In [ ]:
class DataGenerator(keras.utils.Sequence):
    """Generates data to handling large MRI datasets efficiently."""

    def __init__(self, list_IDs, dim=(img_size, img_size), batch_size=1, n_channels=2, shuffle=True):
        """Initializes the data generator with parameters."""
        self.dim = dim                # Target image size
        self.batch_size = batch_size  # Number of patients to process per batch (default: 1)
        self.list_IDs = list_IDs      # List of patient IDs (folder names)
        self.n_channels = n_channels  # Number of input image channels (default: 2 - T1ce + FLAIR)
        self.shuffle = shuffle        # Whether to shuffle patient data at the end of each epoch (default: True)
        # Initialize indexes and optionally shuffle the data
        self.on_epoch_end()

    def __len__(self):
        """Returns number of batches there are per epoch."""
        return int(np.floor(len(self.list_IDs) / self.batch_size))

    def __getitem__(self, index):
        """Generates one batch of data."""
        # Get batch indexes from shuffled index list
        indexes = self.indexes[index * self.batch_size:(index + 1) * self.batch_size]
        # Get actual patient IDs for this batch
        batch_ids = [self.list_IDs[k] for k in indexes]
        # Load and preprocess the data for this batch
        return self.__data_generation(batch_ids)

    def on_epoch_end(self):
        """Creates an array of indices and shuffles them if enabled."""
        self.indexes = np.arange(len(self.list_IDs)) # [0, 1, 2, ..., N-1]
        if self.shuffle:
            np.random.shuffle(self.indexes)
In [ ]:
    def __data_generation(self, batch_ids):
        """Generates the data for the current batch."""
        # Allocate memory for input images and segmentation masks
        X = np.zeros((self.batch_size * volume_slices, *self.dim, self.n_channels))
        y = np.zeros((self.batch_size * volume_slices, 240, 240))
        for c, i in enumerate(batch_ids):
            # Path to patient folder
            case_path = os.path.join(dataset_path, i)
            # Load 3D volumes (shape: 240x240x155)
            flair = nib.load(os.path.join(case_path, f'{i}_flair.nii')).get_fdata()
            t1ce = nib.load(os.path.join(case_path, f'{i}_t1ce.nii')).get_fdata()
            seg = nib.load(os.path.join(case_path, f'{i}_seg.nii')).get_fdata()
            # Resize FLAIR and T1ce slices and store in X
            for j in range(volume_slices):
                X[j + volume_slices * c, :, :, 0] = cv2.resize(flair[:, :, j + start_volume], self.dim)
                X[j + volume_slices * c, :, :, 1] = cv2.resize(t1ce[:, :, j + start_volume], self.dim)
                # Store original (unresized) segmentation mask slice in y
                y[j + volume_slices * c] = seg[:, :, j + start_volume]

        # Adjust labels: Relabel class 4 to 3 (since class 3 does not exist)
        y[y == 4] = 3
        # Convert mask to one-hot encoding and resize
        mask = tf.one_hot(y, 4)
        # Resize segmentation masks to match input image size
        Y = tf.image.resize(mask, self.dim)
        # Normalize input image intensities to range [0, 1]
        return X / np.max(X), Y

# Instantiate the data generators
training_generator = DataGenerator(train_ids)
valid_generator = DataGenerator(val_ids)
test_generator = DataGenerator(test_ids)

NOTE¶

Among the four MRI modalities, T1ce and FLAIR are chosen. Why?

  1. T1ce is selected because it provides all the anatomical detail of T1, plus highlighting the enhancing tumor core (i.e. areas of active and aggressive tumor). This is enabled by a contrast agent that leaks into abnormal tissue, making such regions more visible.

  2. FLAIR is preferred over T2 as it offers a cleaner view for tumor detection and segmentation. While T2 shows fluid and can detect edema, it also displays cerebrospinal fluid (CSF), which may obscure tumor boundaries. In contrast, FLAIR suppresses the CSF signal, allowing better visualization of tumor-related swelling.

By focusing on T1ce and FLAIR, we capture both:

  • Active tumor regions (via T1ce)
  • Edema areas (via FLAIR)

Additionally, using only T1ce and FLAIR helps reduce memory usage and model complexity (i.e., fewer parameters are required). In contrast, including T1 and T2 may introduce redundant or low-value data, which can lead the model to learn noise rather than meaningful patterns.

In [ ]:
# Get one batch of data from the training generator
X_batch, Y_batch = training_generator.__getitem__(0)

# Print shapes and types for verification
print("Input shape:", X_batch.shape)  # Expected: (batch_size * VOLUME_SLICES, IMG_SIZE, IMG_SIZE, n_channels)
print("Label shape:", Y_batch.shape)  # Expected: (batch_size * VOLUME_SLICES, IMG_SIZE, IMG_SIZE, num_classes)
print("Input dtype:", X_batch.dtype)
print("Label dtype:", Y_batch.dtype)

# Function to display a single slice and its segmentation
def display_slice_and_segmentation(flair, t1ce, segmentation):
    fig, axes = plt.subplots(1, 4, figsize=(12, 4))

    axes[0].imshow(flair, cmap='gray')
    axes[0].set_title('FLAIR')
    axes[0].axis('off')

    axes[1].imshow(t1ce, cmap='gray')
    axes[1].set_title('T1ce')
    axes[1].axis('off')

    axes[2].imshow(segmentation, cmap='gray')
    axes[2].set_title('Segmentation (grayscale)')
    axes[2].axis('off')

    axes[3].imshow(segmentation, cmap='viridis')
    axes[3].set_title('Segmentation (viridis)')
    axes[3].axis('off')

    plt.tight_layout()
    plt.show()

# Load a specific batch (e.g., batch 8)
X_batch, Y_batch = training_generator[10]

# Split the modalities and decode the mask
flair_batch = X_batch[:, :, :, 0]          # Channel 0: FLAIR
t1ce_batch = X_batch[:, :, :, 1]           # Channel 1: T1ce
segmentation_batch = np.argmax(Y_batch, axis=-1)  # Convert one-hot to class labels

# Choose a slice to visualize
slice_index = 60
slice_flair = flair_batch[slice_index]
slice_t1ce = t1ce_batch[slice_index]
slice_segmentation = segmentation_batch[slice_index]

# Display the selected slice
display_slice_and_segmentation(slice_flair, slice_t1ce, slice_segmentation)

# Check index shuffling behavior
indexes_before = training_generator.indexes.copy()
training_generator.on_epoch_end()
indexes_after = training_generator.indexes

print("Indexes before shuffling:", indexes_before[:10])
print("Indexes after shuffling: ", indexes_after[:10])
Input shape: (100, 128, 128, 2)
Label shape: (100, 128, 128, 4)
Input dtype: float64
Label dtype: <dtype: 'float32'>
No description has been provided for this image
Indexes before shuffling: [110  98  70 192 188   2 105 149 197  69]
Indexes after shuffling:  [125 226  55  27  57   7 122 139 201 108]

Evaluation Measures¶

  1. The Dice Coefficient : Measures the overlap between two the predicted segmentation mask and the ground truth.
  • Rang : between 0 (no overlap) and 1 (perfect overlap).
  • Formula : $$ \text{Dice} = \frac{2 \cdot |A \cap B| + \text{smooth}}{|A| + |B| + \text{smooth}} $$
    Where:
  • A = predicted mask
  • B = ground truth mask
  • smooth is a small constant (e.g., 1.0) to avoid division by zero
Special Case — Empty Prediction and Ground Truth¶

When both the predicted mask and ground truth are empty (i.e., no tumor is present):

With smooth = 1:

$$ \text{Dice} = \frac{0 + 1}{0 + 1} = 1.0 $$

The model is correctly rewarded for predicting "nothing" when there is nothing to predict. This keeps the training stable and avoids unfair penalizing the model.

In [ ]:
# Computes the average Dice coefficient across all classes
def dice_coef(y_true, y_pred, smooth=1.0):
    class_num = y_true.shape[-1] # Number of classes
    dice_scores = [] # Stores Dice scores for each class
    
    # Loop through each class and calculate the Dice coefficient
    for i in range(class_num):
        y_true_f = K.batch_flatten(y_true[..., i]) # Flatten the ground truth mask for class i
        y_pred_f = K.batch_flatten(y_pred[..., i]) # Flatten the predicted mask for class i
        intersection = K.sum(y_true_f * y_pred_f)  # Computes the intersection
        # Compute Dice score for the current class
        score = (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
        dice_scores.append(score)
        
    # Returns the mean Dice score across all classes
    return K.mean(K.stack(dice_scores))

# Calculates the Dice coefficient for a specific class
def dice_coef_per_class(y_true, y_pred, class_idx, epsilon=1e-6):
    y_true_f = K.batch_flatten(y_true[..., class_idx]) # Flatten the ground truth mask
    y_pred_f = K.batch_flatten(y_pred[..., class_idx]) # Flatten the predicted mask
    intersection = K.sum(y_true_f * y_pred_f) # Computes the intersection

    # Computes the Dice score for the specified class
    return (2. * intersection + epsilon) / (K.sum(y_true_f) + K.sum(y_pred_f) + epsilon)

# Class-specific metrics
def dice_coef_necrotic(y_true, y_pred): return dice_coef_per_class(y_true, y_pred, 1)
def dice_coef_edema(y_true, y_pred): return dice_coef_per_class(y_true, y_pred, 2)
def dice_coef_enhancing(y_true, y_pred): return dice_coef_per_class(y_true, y_pred, 3)
  1. Precision: Measures how many of the predicted positives are actually correct.

Formula: $$ \text{Precision} = \frac{TP}{TP + FP} $$

Where:

  • TP = True Positives
  • FP = False Positives

High precision means few false alarms

  1. Sensitivity (Recall): Measures how many of the actual positives were correctly identified.

Formula:
$$ \text{Sensitivity} = \frac{TP}{TP + FN} $$

Where:

  • FN = False Negatives

High sensitivity means few missed positives

  1. Specificity: Measures how many of the actual negatives were correctly identified.

Formula: $$ \text{Specificity} = \frac{TN}{TN + FP} $$

Where:

  • TN = True Negatives

High specificity means few false positives

  1. IoU (Intersection over Union: Metric that measures how much the predicted region overlaps with the ground truth region.

Formula: $$ \text{IoU} = \frac{|A \cap B|}{|A \cup B|} $$

Dice Coefficient (in terms of IoU):

$$ \text{Dice} = \frac{2 \cdot \text{IoU}}{1 + \text{IoU}} $$

So Dice is always slightly higher than IoU for the same inputs.

Intersection over Union (IoU): Ratio of overlap to total union

$$ \text{IoU} = \frac{TP}{TP + FP + FN} $$

Dice Coefficient: Balance between precision and recall

$$ \text{Dice} = \frac{2TP}{2TP + FP + FN} $$

In [ ]:
def precision(y_true, y_pred):
    # Ensure the tensors are binary
    y_pred = K.round(K.clip(y_pred, 0, 1))
    y_true = K.round(K.clip(y_true, 0, 1))

    true_positives = K.sum(y_true * y_pred)
    predicted_positives = K.sum(y_pred)
    
    return true_positives / (predicted_positives + K.epsilon()) # prevent division by zero

def sensitivity(y_true, y_pred):
    # Ensure the tensors are binary
    y_pred = K.round(K.clip(y_pred, 0, 1))
    y_true = K.round(K.clip(y_true, 0, 1))

    true_positives = K.sum(y_true * y_pred)
    possible_positives = K.sum(y_true)

    return true_positives / (possible_positives + K.epsilon())

def specificity(y_true, y_pred):
    # Ensure the tensors are binary
    y_pred = K.round(K.clip(y_pred, 0, 1))
    y_true = K.round(K.clip(y_true, 0, 1))

    true_negatives = K.sum((1 - y_true) * (1 - y_pred))
    possible_negatives = K.sum(1 - y_true)

    return true_negatives / (possible_negatives + K.epsilon())

Define the Model¶

This function defines a U-Net architecture, a type of convolutional neural network (CNN) designed specifically for image segmentation tasks.

U-Net is structured into two main components:

  1. Encoder (Downsampling Path)

    • Learns what’s in the image.

    • Uses convolution and pooling layers to reduce the size of the image and capture important features.

  2. Decoder (Upsampling Path)

    • This part rebuilds the image size from the smaller feature maps.

    • It combines detailed information from the encoder to predict a class for each pixel.

    • This helps the model understand where each object is in the image.

This design allows U-Net to learn both what is in the image and where it is, making it highly effective for pixel-wise classification tasks.

In [ ]:
def build_unet(inputs, ker_init='he_normal', dropout=0.2):
    """
    inputs: The input tensor with shape (img_size, img_size, 2)
    ker_init: The initializer for kernel weights
    dropout: Dropout rate to help prevent overfitting in the bottleneck.
    """
    # Encoder
    conv1 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(inputs)
    conv1 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv1)
    pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)

    conv2 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool1)
    conv2 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv2)
    pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)

    conv3 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool2)
    conv3 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv3)
    pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)

    conv4 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool3)
    conv4 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv4)
    pool4 = MaxPooling2D(pool_size=(2, 2))(conv4)

    # Bottleneck
    conv5 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer=ker_init)(pool4)
    conv5 = Conv2D(512, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv5)
    # Drops 20% of neurons to make neurons less dependent and learn more general features (prevent overfitting)
    drop5 = Dropout(dropout)(conv5)
In [ ]:
    # Decoder
    # Increase spatial size
    up6 = Conv2D(256, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(drop5))
    # concatenates the upsampled data up6 with the encoder's features conv4 with depth = 3
    merge6 = concatenate([conv4, up6], axis=3)
    # Let the model learn new patterns from the combined info
    conv6 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge6)
    conv6 = Conv2D(256, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv6)

    up7 = Conv2D(128, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(conv6))
    merge7 = concatenate([conv3, up7], axis=3)
    conv7 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge7)
    conv7 = Conv2D(128, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv7)

    up8 = Conv2D(64, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(conv7))
    merge8 = concatenate([conv2, up8], axis=3)
    conv8 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge8)
    conv8 = Conv2D(64, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv8)

    up9 = Conv2D(32, 2, activation='relu', padding='same', kernel_initializer=ker_init)(UpSampling2D(size=(2, 2))(conv8))
    merge9 = concatenate([conv1, up9], axis=3)
    conv9 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(merge9)
    conv9 = Conv2D(32, 3, activation='relu', padding='same', kernel_initializer=ker_init)(conv9)

    # Output
    conv10 = Conv2D(4, (1, 1), activation='softmax')(conv9)

    return Model(inputs=inputs, outputs=conv10)
In [ ]:
# Define model input
input_layer = Input(shape=(img_size, img_size, 2))

# Build U-Net model
model = build_unet(input_layer, 'he_normal', 0.2)
In [ ]:
# Dice loss and combined loss
def dice_loss(y_true, y_pred, smooth=1e-6):
    y_true_f = tf.reshape(y_true, [-1, 4])
    y_pred_f = tf.reshape(y_pred, [-1, 4])
    intersection = tf.reduce_sum(y_true_f * y_pred_f, axis=0)
    union = tf.reduce_sum(y_true_f, axis=0) + tf.reduce_sum(y_pred_f, axis=0)
    dice = (2. * intersection + smooth) / (union + smooth)
    return 1 - tf.reduce_mean(dice)

def combined_loss(y_true, y_pred):
    ce = tf.keras.losses.categorical_crossentropy(y_true, y_pred)
    dl = dice_loss(y_true, y_pred)
    return ce + dl
In [ ]:
model.compile(
    loss=combined_loss,
    optimizer=Adam(learning_rate=0.001), # learning_rate = how fast the model updates during training
    # what reports during training
    metrics=[
        MeanIoU(num_classes=4, name="mean_io_u"),
        dice_coef,
        precision,
        sensitivity,
        specificity,
        dice_coef_necrotic,
        dice_coef_edema,
        dice_coef_enhancing
    ]
)

# Define Callbacks
callbacks = [
    # Reduce Learning Rate On Plateau
    # If validation loss doesn't improve after 2 epochs, it reduces the learning rate by a factor of 0.2
    ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=2, min_lr=1e-6, verbose=1),
    # Saves model weights after each epoch only if validation loss improves
    ModelCheckpoint(
        filepath='model_.{epoch:02d}-{val_loss:.6f}.weights.h5',
        verbose=1,
        save_best_only=True,
        save_weights_only=True
    ),
    # Saves training and validation metrics to a CSV file
    CSVLogger('training.log', separator=',', append=False)
]
In [ ]:
# Print model summary
model.summary()
Model: "functional"
┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Layer (type)        ┃ Output Shape      ┃    Param # ┃ Connected to      ┃
┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ input_layer         │ (None, 128, 128,  │          0 │ -                 │
│ (InputLayer)        │ 2)                │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d (Conv2D)     │ (None, 128, 128,  │        608 │ input_layer[0][0] │
│                     │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_1 (Conv2D)   │ (None, 128, 128,  │      9,248 │ conv2d[0][0]      │
│                     │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d       │ (None, 64, 64,    │          0 │ conv2d_1[0][0]    │
│ (MaxPooling2D)      │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_2 (Conv2D)   │ (None, 64, 64,    │     18,496 │ max_pooling2d[0]… │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_3 (Conv2D)   │ (None, 64, 64,    │     36,928 │ conv2d_2[0][0]    │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_1     │ (None, 32, 32,    │          0 │ conv2d_3[0][0]    │
│ (MaxPooling2D)      │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_4 (Conv2D)   │ (None, 32, 32,    │     73,856 │ max_pooling2d_1[… │
│                     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_5 (Conv2D)   │ (None, 32, 32,    │    147,584 │ conv2d_4[0][0]    │
│                     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_2     │ (None, 16, 16,    │          0 │ conv2d_5[0][0]    │
│ (MaxPooling2D)      │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_6 (Conv2D)   │ (None, 16, 16,    │    295,168 │ max_pooling2d_2[… │
│                     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_7 (Conv2D)   │ (None, 16, 16,    │    590,080 │ conv2d_6[0][0]    │
│                     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ max_pooling2d_3     │ (None, 8, 8, 256) │          0 │ conv2d_7[0][0]    │
│ (MaxPooling2D)      │                   │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_8 (Conv2D)   │ (None, 8, 8, 512) │  1,180,160 │ max_pooling2d_3[… │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_9 (Conv2D)   │ (None, 8, 8, 512) │  2,359,808 │ conv2d_8[0][0]    │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ dropout (Dropout)   │ (None, 8, 8, 512) │          0 │ conv2d_9[0][0]    │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ up_sampling2d       │ (None, 16, 16,    │          0 │ dropout[0][0]     │
│ (UpSampling2D)      │ 512)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_10 (Conv2D)  │ (None, 16, 16,    │    524,544 │ up_sampling2d[0]… │
│                     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ concatenate         │ (None, 16, 16,    │          0 │ conv2d_7[0][0],   │
│ (Concatenate)       │ 512)              │            │ conv2d_10[0][0]   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_11 (Conv2D)  │ (None, 16, 16,    │  1,179,904 │ concatenate[0][0] │
│                     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_12 (Conv2D)  │ (None, 16, 16,    │    590,080 │ conv2d_11[0][0]   │
│                     │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ up_sampling2d_1     │ (None, 32, 32,    │          0 │ conv2d_12[0][0]   │
│ (UpSampling2D)      │ 256)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_13 (Conv2D)  │ (None, 32, 32,    │    131,200 │ up_sampling2d_1[… │
│                     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ concatenate_1       │ (None, 32, 32,    │          0 │ conv2d_5[0][0],   │
│ (Concatenate)       │ 256)              │            │ conv2d_13[0][0]   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_14 (Conv2D)  │ (None, 32, 32,    │    295,040 │ concatenate_1[0]… │
│                     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_15 (Conv2D)  │ (None, 32, 32,    │    147,584 │ conv2d_14[0][0]   │
│                     │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ up_sampling2d_2     │ (None, 64, 64,    │          0 │ conv2d_15[0][0]   │
│ (UpSampling2D)      │ 128)              │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_16 (Conv2D)  │ (None, 64, 64,    │     32,832 │ up_sampling2d_2[… │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ concatenate_2       │ (None, 64, 64,    │          0 │ conv2d_3[0][0],   │
│ (Concatenate)       │ 128)              │            │ conv2d_16[0][0]   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_17 (Conv2D)  │ (None, 64, 64,    │     73,792 │ concatenate_2[0]… │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_18 (Conv2D)  │ (None, 64, 64,    │     36,928 │ conv2d_17[0][0]   │
│                     │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ up_sampling2d_3     │ (None, 128, 128,  │          0 │ conv2d_18[0][0]   │
│ (UpSampling2D)      │ 64)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_19 (Conv2D)  │ (None, 128, 128,  │      8,224 │ up_sampling2d_3[… │
│                     │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ concatenate_3       │ (None, 128, 128,  │          0 │ conv2d_1[0][0],   │
│ (Concatenate)       │ 64)               │            │ conv2d_19[0][0]   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_20 (Conv2D)  │ (None, 128, 128,  │     18,464 │ concatenate_3[0]… │
│                     │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_21 (Conv2D)  │ (None, 128, 128,  │      9,248 │ conv2d_20[0][0]   │
│                     │ 32)               │            │                   │
├─────────────────────┼───────────────────┼────────────┼───────────────────┤
│ conv2d_22 (Conv2D)  │ (None, 128, 128,  │        132 │ conv2d_21[0][0]   │
│                     │ 4)                │            │                   │
└─────────────────────┴───────────────────┴────────────┴───────────────────┘
 Total params: 7,759,908 (29.60 MB)
 Trainable params: 7,759,908 (29.60 MB)
 Non-trainable params: 0 (0.00 B)
In [ ]:
! pip install visualkeras
import visualkeras
Requirement already satisfied: visualkeras in /usr/local/lib/python3.11/dist-packages (0.1.4)
Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from visualkeras) (11.2.1)
Requirement already satisfied: numpy>=1.18.1 in /usr/local/lib/python3.11/dist-packages (from visualkeras) (2.0.2)
Requirement already satisfied: aggdraw>=1.3.11 in /usr/local/lib/python3.11/dist-packages (from visualkeras) (1.3.19)
In [ ]:
# Visualization
visualkeras.layered_view(model, legend=True)
/usr/local/lib/python3.11/dist-packages/visualkeras/layered.py:86: UserWarning:

The legend_text_spacing_offset parameter is deprecated and will be removed in a future release.

Out[ ]:
No description has been provided for this image
In [ ]:
# Train the U-Net model
history =  model.fit(training_generator, # Training data generator
                    epochs=35, # Number of training epochs
                    steps_per_epoch=len(train_ids), # Number of steps per epoch
                    callbacks= callbacks, # Callbacks
                    validation_data = valid_generator # Validation data generator
                    )
Epoch 1/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 686ms/step - dice_coef: 0.2550 - dice_coef_edema: 0.0483 - dice_coef_enhancing: 0.0135 - dice_coef_necrotic: 0.0182 - loss: 0.9685 - mean_io_u: 0.5516 - precision: 0.9556 - sensitivity: 0.9090 - specificity: 0.9948
Epoch 1: val_loss improved from inf to 0.85315, saving model to model_.01-0.853152.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 246s 926ms/step - dice_coef: 0.2551 - dice_coef_edema: 0.0484 - dice_coef_enhancing: 0.0135 - dice_coef_necrotic: 0.0182 - loss: 0.9680 - mean_io_u: 0.5518 - precision: 0.9557 - sensitivity: 0.9092 - specificity: 0.9948 - val_dice_coef: 0.2660 - val_dice_coef_edema: 0.0485 - val_dice_coef_enhancing: 0.0081 - val_dice_coef_necrotic: 0.0164 - val_loss: 0.8532 - val_mean_io_u: 0.8200 - val_precision: 0.9836 - val_sensitivity: 0.9825 - val_specificity: 0.9945 - learning_rate: 0.0010
Epoch 2/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.2858 - dice_coef_edema: 0.1083 - dice_coef_enhancing: 0.0204 - dice_coef_necrotic: 0.0349 - loss: 0.8071 - mean_io_u: 0.5670 - precision: 0.9864 - sensitivity: 0.9653 - specificity: 0.9955
Epoch 2: val_loss improved from 0.85315 to 0.77589, saving model to model_.02-0.775888.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 289ms/step - dice_coef: 0.2858 - dice_coef_edema: 0.1083 - dice_coef_enhancing: 0.0204 - dice_coef_necrotic: 0.0349 - loss: 0.8071 - mean_io_u: 0.5672 - precision: 0.9864 - sensitivity: 0.9653 - specificity: 0.9955 - val_dice_coef: 0.2939 - val_dice_coef_edema: 0.1252 - val_dice_coef_enhancing: 0.0286 - val_dice_coef_necrotic: 0.0356 - val_loss: 0.7759 - val_mean_io_u: 0.8094 - val_precision: 0.9864 - val_sensitivity: 0.9771 - val_specificity: 0.9955 - learning_rate: 0.0010
Epoch 3/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.3027 - dice_coef_edema: 0.1298 - dice_coef_enhancing: 0.0517 - dice_coef_necrotic: 0.0484 - loss: 0.7919 - mean_io_u: 0.7432 - precision: 0.9876 - sensitivity: 0.9635 - specificity: 0.9959
Epoch 3: val_loss improved from 0.77589 to 0.73797, saving model to model_.03-0.737972.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.3027 - dice_coef_edema: 0.1297 - dice_coef_enhancing: 0.0517 - dice_coef_necrotic: 0.0484 - loss: 0.7920 - mean_io_u: 0.7428 - precision: 0.9876 - sensitivity: 0.9635 - specificity: 0.9959 - val_dice_coef: 0.3299 - val_dice_coef_edema: 0.1307 - val_dice_coef_enhancing: 0.1500 - val_dice_coef_necrotic: 0.0523 - val_loss: 0.7380 - val_mean_io_u: 0.7714 - val_precision: 0.9857 - val_sensitivity: 0.9775 - val_specificity: 0.9953 - learning_rate: 0.0010
Epoch 4/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 217ms/step - dice_coef: 0.3276 - dice_coef_edema: 0.1236 - dice_coef_enhancing: 0.1540 - dice_coef_necrotic: 0.0446 - loss: 0.7588 - mean_io_u: 0.6188 - precision: 0.9845 - sensitivity: 0.9737 - specificity: 0.9949
Epoch 4: val_loss improved from 0.73797 to 0.66522, saving model to model_.04-0.665222.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 285ms/step - dice_coef: 0.3277 - dice_coef_edema: 0.1237 - dice_coef_enhancing: 0.1540 - dice_coef_necrotic: 0.0446 - loss: 0.7588 - mean_io_u: 0.6189 - precision: 0.9845 - sensitivity: 0.9737 - specificity: 0.9949 - val_dice_coef: 0.4007 - val_dice_coef_edema: 0.2254 - val_dice_coef_enhancing: 0.2581 - val_dice_coef_necrotic: 0.1286 - val_loss: 0.6652 - val_mean_io_u: 0.8281 - val_precision: 0.9865 - val_sensitivity: 0.9832 - val_specificity: 0.9955 - learning_rate: 0.0010
Epoch 5/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.4040 - dice_coef_edema: 0.2066 - dice_coef_enhancing: 0.2883 - dice_coef_necrotic: 0.1351 - loss: 0.6797 - mean_io_u: 0.8111 - precision: 0.9787 - sensitivity: 0.9724 - specificity: 0.9930
Epoch 5: val_loss improved from 0.66522 to 0.62769, saving model to model_.05-0.627692.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.4040 - dice_coef_edema: 0.2066 - dice_coef_enhancing: 0.2883 - dice_coef_necrotic: 0.1351 - loss: 0.6798 - mean_io_u: 0.8110 - precision: 0.9787 - sensitivity: 0.9724 - specificity: 0.9930 - val_dice_coef: 0.4315 - val_dice_coef_edema: 0.2217 - val_dice_coef_enhancing: 0.3327 - val_dice_coef_necrotic: 0.1808 - val_loss: 0.6277 - val_mean_io_u: 0.3756 - val_precision: 0.9853 - val_sensitivity: 0.9828 - val_specificity: 0.9951 - learning_rate: 0.0010
Epoch 6/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.4254 - dice_coef_edema: 0.2364 - dice_coef_enhancing: 0.3106 - dice_coef_necrotic: 0.1661 - loss: 0.6536 - mean_io_u: 0.6706 - precision: 0.9803 - sensitivity: 0.9773 - specificity: 0.9935
Epoch 6: val_loss did not improve from 0.62769
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.4255 - dice_coef_edema: 0.2364 - dice_coef_enhancing: 0.3107 - dice_coef_necrotic: 0.1662 - loss: 0.6535 - mean_io_u: 0.6708 - precision: 0.9803 - sensitivity: 0.9773 - specificity: 0.9935 - val_dice_coef: 0.4536 - val_dice_coef_edema: 0.2743 - val_dice_coef_enhancing: 0.3755 - val_dice_coef_necrotic: 0.1756 - val_loss: 0.6295 - val_mean_io_u: 0.8148 - val_precision: 0.9787 - val_sensitivity: 0.9781 - val_specificity: 0.9929 - learning_rate: 0.0010
Epoch 7/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.4511 - dice_coef_edema: 0.2581 - dice_coef_enhancing: 0.3398 - dice_coef_necrotic: 0.2124 - loss: 0.6392 - mean_io_u: 0.5541 - precision: 0.9783 - sensitivity: 0.9739 - specificity: 0.9929
Epoch 7: val_loss improved from 0.62769 to 0.55750, saving model to model_.07-0.557503.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 289ms/step - dice_coef: 0.4512 - dice_coef_edema: 0.2582 - dice_coef_enhancing: 0.3400 - dice_coef_necrotic: 0.2125 - loss: 0.6391 - mean_io_u: 0.5542 - precision: 0.9783 - sensitivity: 0.9739 - specificity: 0.9929 - val_dice_coef: 0.5157 - val_dice_coef_edema: 0.3113 - val_dice_coef_enhancing: 0.4486 - val_dice_coef_necrotic: 0.3112 - val_loss: 0.5575 - val_mean_io_u: 0.8199 - val_precision: 0.9829 - val_sensitivity: 0.9817 - val_specificity: 0.9943 - learning_rate: 0.0010
Epoch 8/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.5002 - dice_coef_edema: 0.2981 - dice_coef_enhancing: 0.4252 - dice_coef_necrotic: 0.2869 - loss: 0.5801 - mean_io_u: 0.6407 - precision: 0.9807 - sensitivity: 0.9786 - specificity: 0.9936
Epoch 8: val_loss improved from 0.55750 to 0.51539, saving model to model_.08-0.515393.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.5001 - dice_coef_edema: 0.2982 - dice_coef_enhancing: 0.4252 - dice_coef_necrotic: 0.2869 - loss: 0.5801 - mean_io_u: 0.6409 - precision: 0.9807 - sensitivity: 0.9786 - specificity: 0.9936 - val_dice_coef: 0.5453 - val_dice_coef_edema: 0.3509 - val_dice_coef_enhancing: 0.4699 - val_dice_coef_necrotic: 0.3681 - val_loss: 0.5154 - val_mean_io_u: 0.7961 - val_precision: 0.9851 - val_sensitivity: 0.9836 - val_specificity: 0.9950 - learning_rate: 0.0010
Epoch 9/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 222ms/step - dice_coef: 0.5367 - dice_coef_edema: 0.3737 - dice_coef_enhancing: 0.4625 - dice_coef_necrotic: 0.3176 - loss: 0.5334 - mean_io_u: 0.6849 - precision: 0.9838 - sensitivity: 0.9828 - specificity: 0.9946
Epoch 9: val_loss improved from 0.51539 to 0.46823, saving model to model_.09-0.468233.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 292ms/step - dice_coef: 0.5367 - dice_coef_edema: 0.3737 - dice_coef_enhancing: 0.4625 - dice_coef_necrotic: 0.3177 - loss: 0.5333 - mean_io_u: 0.6847 - precision: 0.9838 - sensitivity: 0.9828 - specificity: 0.9946 - val_dice_coef: 0.5885 - val_dice_coef_edema: 0.3795 - val_dice_coef_enhancing: 0.5527 - val_dice_coef_necrotic: 0.4258 - val_loss: 0.4682 - val_mean_io_u: 0.7885 - val_precision: 0.9890 - val_sensitivity: 0.9884 - val_specificity: 0.9964 - learning_rate: 0.0010
Epoch 10/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.5522 - dice_coef_edema: 0.3707 - dice_coef_enhancing: 0.4801 - dice_coef_necrotic: 0.3651 - loss: 0.5133 - mean_io_u: 0.6835 - precision: 0.9844 - sensitivity: 0.9827 - specificity: 0.9949
Epoch 10: val_loss did not improve from 0.46823
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.5522 - dice_coef_edema: 0.3707 - dice_coef_enhancing: 0.4801 - dice_coef_necrotic: 0.3651 - loss: 0.5133 - mean_io_u: 0.6832 - precision: 0.9844 - sensitivity: 0.9827 - specificity: 0.9949 - val_dice_coef: 0.5699 - val_dice_coef_edema: 0.3932 - val_dice_coef_enhancing: 0.5031 - val_dice_coef_necrotic: 0.3900 - val_loss: 0.4885 - val_mean_io_u: 0.3767 - val_precision: 0.9867 - val_sensitivity: 0.9858 - val_specificity: 0.9956 - learning_rate: 0.0010
Epoch 11/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 225ms/step - dice_coef: 0.5695 - dice_coef_edema: 0.3890 - dice_coef_enhancing: 0.5248 - dice_coef_necrotic: 0.3711 - loss: 0.4954 - mean_io_u: 0.4366 - precision: 0.9847 - sensitivity: 0.9838 - specificity: 0.9949
Epoch 11: val_loss improved from 0.46823 to 0.44162, saving model to model_.11-0.441615.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 294ms/step - dice_coef: 0.5696 - dice_coef_edema: 0.3891 - dice_coef_enhancing: 0.5248 - dice_coef_necrotic: 0.3712 - loss: 0.4953 - mean_io_u: 0.4367 - precision: 0.9847 - sensitivity: 0.9838 - specificity: 0.9949 - val_dice_coef: 0.6158 - val_dice_coef_edema: 0.4628 - val_dice_coef_enhancing: 0.5720 - val_dice_coef_necrotic: 0.4303 - val_loss: 0.4416 - val_mean_io_u: 0.3892 - val_precision: 0.9874 - val_sensitivity: 0.9864 - val_specificity: 0.9958 - learning_rate: 0.0010
Epoch 12/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.5904 - dice_coef_edema: 0.4283 - dice_coef_enhancing: 0.5267 - dice_coef_necrotic: 0.4116 - loss: 0.4717 - mean_io_u: 0.4887 - precision: 0.9873 - sensitivity: 0.9867 - specificity: 0.9958
Epoch 12: val_loss improved from 0.44162 to 0.42316, saving model to model_.12-0.423160.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.5905 - dice_coef_edema: 0.4285 - dice_coef_enhancing: 0.5268 - dice_coef_necrotic: 0.4116 - loss: 0.4716 - mean_io_u: 0.4888 - precision: 0.9873 - sensitivity: 0.9867 - specificity: 0.9958 - val_dice_coef: 0.6321 - val_dice_coef_edema: 0.5067 - val_dice_coef_enhancing: 0.5929 - val_dice_coef_necrotic: 0.4320 - val_loss: 0.4232 - val_mean_io_u: 0.8026 - val_precision: 0.9890 - val_sensitivity: 0.9888 - val_specificity: 0.9963 - learning_rate: 0.0010
Epoch 13/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.6197 - dice_coef_edema: 0.4734 - dice_coef_enhancing: 0.5693 - dice_coef_necrotic: 0.4392 - loss: 0.4365 - mean_io_u: 0.4972 - precision: 0.9886 - sensitivity: 0.9882 - specificity: 0.9962
Epoch 13: val_loss improved from 0.42316 to 0.40523, saving model to model_.13-0.405229.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.6198 - dice_coef_edema: 0.4735 - dice_coef_enhancing: 0.5693 - dice_coef_necrotic: 0.4392 - loss: 0.4365 - mean_io_u: 0.4971 - precision: 0.9886 - sensitivity: 0.9882 - specificity: 0.9962 - val_dice_coef: 0.6462 - val_dice_coef_edema: 0.5207 - val_dice_coef_enhancing: 0.6129 - val_dice_coef_necrotic: 0.4547 - val_loss: 0.4052 - val_mean_io_u: 0.3776 - val_precision: 0.9892 - val_sensitivity: 0.9890 - val_specificity: 0.9964 - learning_rate: 0.0010
Epoch 14/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.6374 - dice_coef_edema: 0.5180 - dice_coef_enhancing: 0.6063 - dice_coef_necrotic: 0.4285 - loss: 0.4184 - mean_io_u: 0.4515 - precision: 0.9890 - sensitivity: 0.9887 - specificity: 0.9963
Epoch 14: val_loss did not improve from 0.40523
235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 294ms/step - dice_coef: 0.6374 - dice_coef_edema: 0.5180 - dice_coef_enhancing: 0.6062 - dice_coef_necrotic: 0.4286 - loss: 0.4184 - mean_io_u: 0.4517 - precision: 0.9890 - sensitivity: 0.9888 - specificity: 0.9963 - val_dice_coef: 0.6042 - val_dice_coef_edema: 0.4593 - val_dice_coef_enhancing: 0.5463 - val_dice_coef_necrotic: 0.4201 - val_loss: 0.4621 - val_mean_io_u: 0.3828 - val_precision: 0.9819 - val_sensitivity: 0.9810 - val_specificity: 0.9940 - learning_rate: 0.0010
Epoch 15/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.6330 - dice_coef_edema: 0.4998 - dice_coef_enhancing: 0.5807 - dice_coef_necrotic: 0.4543 - loss: 0.4188 - mean_io_u: 0.6244 - precision: 0.9894 - sensitivity: 0.9890 - specificity: 0.9965
Epoch 15: val_loss improved from 0.40523 to 0.39552, saving model to model_.15-0.395521.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 287ms/step - dice_coef: 0.6330 - dice_coef_edema: 0.4998 - dice_coef_enhancing: 0.5807 - dice_coef_necrotic: 0.4543 - loss: 0.4188 - mean_io_u: 0.6243 - precision: 0.9894 - sensitivity: 0.9890 - specificity: 0.9965 - val_dice_coef: 0.6519 - val_dice_coef_edema: 0.5314 - val_dice_coef_enhancing: 0.6028 - val_dice_coef_necrotic: 0.4773 - val_loss: 0.3955 - val_mean_io_u: 0.3765 - val_precision: 0.9896 - val_sensitivity: 0.9894 - val_specificity: 0.9965 - learning_rate: 0.0010
Epoch 16/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 223ms/step - dice_coef: 0.6311 - dice_coef_edema: 0.5041 - dice_coef_enhancing: 0.5695 - dice_coef_necrotic: 0.4505 - loss: 0.4197 - mean_io_u: 0.5321 - precision: 0.9899 - sensitivity: 0.9896 - specificity: 0.9966
Epoch 16: val_loss improved from 0.39552 to 0.38759, saving model to model_.16-0.387587.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 291ms/step - dice_coef: 0.6312 - dice_coef_edema: 0.5042 - dice_coef_enhancing: 0.5696 - dice_coef_necrotic: 0.4506 - loss: 0.4196 - mean_io_u: 0.5321 - precision: 0.9899 - sensitivity: 0.9896 - specificity: 0.9966 - val_dice_coef: 0.6603 - val_dice_coef_edema: 0.5521 - val_dice_coef_enhancing: 0.6353 - val_dice_coef_necrotic: 0.4567 - val_loss: 0.3876 - val_mean_io_u: 0.3817 - val_precision: 0.9901 - val_sensitivity: 0.9899 - val_specificity: 0.9967 - learning_rate: 0.0010
Epoch 17/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.6873 - dice_coef_edema: 0.6001 - dice_coef_enhancing: 0.6541 - dice_coef_necrotic: 0.4971 - loss: 0.3541 - mean_io_u: 0.5348 - precision: 0.9917 - sensitivity: 0.9914 - specificity: 0.9972
Epoch 17: val_loss did not improve from 0.38759
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 287ms/step - dice_coef: 0.6872 - dice_coef_edema: 0.5999 - dice_coef_enhancing: 0.6539 - dice_coef_necrotic: 0.4970 - loss: 0.3542 - mean_io_u: 0.5348 - precision: 0.9917 - sensitivity: 0.9914 - specificity: 0.9972 - val_dice_coef: 0.6462 - val_dice_coef_edema: 0.5143 - val_dice_coef_enhancing: 0.6121 - val_dice_coef_necrotic: 0.4610 - val_loss: 0.4047 - val_mean_io_u: 0.3765 - val_precision: 0.9905 - val_sensitivity: 0.9903 - val_specificity: 0.9968 - learning_rate: 0.0010
Epoch 18/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 216ms/step - dice_coef: 0.6619 - dice_coef_edema: 0.5460 - dice_coef_enhancing: 0.6028 - dice_coef_necrotic: 0.5000 - loss: 0.3838 - mean_io_u: 0.4606 - precision: 0.9908 - sensitivity: 0.9905 - specificity: 0.9969
Epoch 18: val_loss improved from 0.38759 to 0.36622, saving model to model_.18-0.366215.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 284ms/step - dice_coef: 0.6620 - dice_coef_edema: 0.5461 - dice_coef_enhancing: 0.6029 - dice_coef_necrotic: 0.5000 - loss: 0.3837 - mean_io_u: 0.4608 - precision: 0.9908 - sensitivity: 0.9905 - specificity: 0.9969 - val_dice_coef: 0.6764 - val_dice_coef_edema: 0.5660 - val_dice_coef_enhancing: 0.6375 - val_dice_coef_necrotic: 0.5050 - val_loss: 0.3662 - val_mean_io_u: 0.8079 - val_precision: 0.9912 - val_sensitivity: 0.9910 - val_specificity: 0.9971 - learning_rate: 0.0010
Epoch 19/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 217ms/step - dice_coef: 0.6610 - dice_coef_edema: 0.5428 - dice_coef_enhancing: 0.5967 - dice_coef_necrotic: 0.5057 - loss: 0.3820 - mean_io_u: 0.6310 - precision: 0.9918 - sensitivity: 0.9916 - specificity: 0.9973
Epoch 19: val_loss improved from 0.36622 to 0.35812, saving model to model_.19-0.358123.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.6611 - dice_coef_edema: 0.5430 - dice_coef_enhancing: 0.5969 - dice_coef_necrotic: 0.5057 - loss: 0.3819 - mean_io_u: 0.6307 - precision: 0.9918 - sensitivity: 0.9916 - specificity: 0.9973 - val_dice_coef: 0.6839 - val_dice_coef_edema: 0.5641 - val_dice_coef_enhancing: 0.6385 - val_dice_coef_necrotic: 0.5354 - val_loss: 0.3581 - val_mean_io_u: 0.8117 - val_precision: 0.9923 - val_sensitivity: 0.9920 - val_specificity: 0.9974 - learning_rate: 0.0010
Epoch 20/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 211ms/step - dice_coef: 0.6928 - dice_coef_edema: 0.6006 - dice_coef_enhancing: 0.6399 - dice_coef_necrotic: 0.5319 - loss: 0.3468 - mean_io_u: 0.5168 - precision: 0.9920 - sensitivity: 0.9918 - specificity: 0.9973
Epoch 20: val_loss did not improve from 0.35812
235/235 ━━━━━━━━━━━━━━━━━━━━ 66s 279ms/step - dice_coef: 0.6928 - dice_coef_edema: 0.6007 - dice_coef_enhancing: 0.6399 - dice_coef_necrotic: 0.5318 - loss: 0.3468 - mean_io_u: 0.5172 - precision: 0.9920 - sensitivity: 0.9918 - specificity: 0.9973 - val_dice_coef: 0.6648 - val_dice_coef_edema: 0.5297 - val_dice_coef_enhancing: 0.6346 - val_dice_coef_necrotic: 0.4991 - val_loss: 0.3851 - val_mean_io_u: 0.7668 - val_precision: 0.9887 - val_sensitivity: 0.9885 - val_specificity: 0.9962 - learning_rate: 0.0010
Epoch 21/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.6851 - dice_coef_edema: 0.5982 - dice_coef_enhancing: 0.6334 - dice_coef_necrotic: 0.5107 - loss: 0.3605 - mean_io_u: 0.6375 - precision: 0.9913 - sensitivity: 0.9911 - specificity: 0.9971
Epoch 21: ReduceLROnPlateau reducing learning rate to 0.00020000000949949026.

Epoch 21: val_loss did not improve from 0.35812
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.6852 - dice_coef_edema: 0.5982 - dice_coef_enhancing: 0.6335 - dice_coef_necrotic: 0.5108 - loss: 0.3605 - mean_io_u: 0.6378 - precision: 0.9913 - sensitivity: 0.9911 - specificity: 0.9971 - val_dice_coef: 0.6747 - val_dice_coef_edema: 0.5710 - val_dice_coef_enhancing: 0.6340 - val_dice_coef_necrotic: 0.4957 - val_loss: 0.3692 - val_mean_io_u: 0.8328 - val_precision: 0.9916 - val_sensitivity: 0.9915 - val_specificity: 0.9972 - learning_rate: 0.0010
Epoch 22/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.7231 - dice_coef_edema: 0.6543 - dice_coef_enhancing: 0.6763 - dice_coef_necrotic: 0.5635 - loss: 0.3120 - mean_io_u: 0.8161 - precision: 0.9930 - sensitivity: 0.9928 - specificity: 0.9977
Epoch 22: val_loss improved from 0.35812 to 0.33605, saving model to model_.22-0.336055.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 289ms/step - dice_coef: 0.7231 - dice_coef_edema: 0.6544 - dice_coef_enhancing: 0.6763 - dice_coef_necrotic: 0.5636 - loss: 0.3119 - mean_io_u: 0.8161 - precision: 0.9930 - sensitivity: 0.9928 - specificity: 0.9977 - val_dice_coef: 0.7016 - val_dice_coef_edema: 0.6035 - val_dice_coef_enhancing: 0.6564 - val_dice_coef_necrotic: 0.5487 - val_loss: 0.3361 - val_mean_io_u: 0.8097 - val_precision: 0.9923 - val_sensitivity: 0.9921 - val_specificity: 0.9974 - learning_rate: 2.0000e-04
Epoch 23/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 216ms/step - dice_coef: 0.7353 - dice_coef_edema: 0.6859 - dice_coef_enhancing: 0.6833 - dice_coef_necrotic: 0.5722 - loss: 0.2975 - mean_io_u: 0.8078 - precision: 0.9934 - sensitivity: 0.9932 - specificity: 0.9978
Epoch 23: val_loss improved from 0.33605 to 0.32962, saving model to model_.23-0.329619.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 285ms/step - dice_coef: 0.7353 - dice_coef_edema: 0.6859 - dice_coef_enhancing: 0.6834 - dice_coef_necrotic: 0.5722 - loss: 0.2975 - mean_io_u: 0.8079 - precision: 0.9934 - sensitivity: 0.9932 - specificity: 0.9978 - val_dice_coef: 0.7075 - val_dice_coef_edema: 0.6082 - val_dice_coef_enhancing: 0.6577 - val_dice_coef_necrotic: 0.5660 - val_loss: 0.3296 - val_mean_io_u: 0.8308 - val_precision: 0.9927 - val_sensitivity: 0.9926 - val_specificity: 0.9976 - learning_rate: 2.0000e-04
Epoch 24/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.7422 - dice_coef_edema: 0.6789 - dice_coef_enhancing: 0.6894 - dice_coef_necrotic: 0.6018 - loss: 0.2900 - mean_io_u: 0.8136 - precision: 0.9934 - sensitivity: 0.9933 - specificity: 0.9978
Epoch 24: val_loss did not improve from 0.32962
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 287ms/step - dice_coef: 0.7422 - dice_coef_edema: 0.6789 - dice_coef_enhancing: 0.6894 - dice_coef_necrotic: 0.6018 - loss: 0.2900 - mean_io_u: 0.8135 - precision: 0.9934 - sensitivity: 0.9933 - specificity: 0.9978 - val_dice_coef: 0.7047 - val_dice_coef_edema: 0.6032 - val_dice_coef_enhancing: 0.6541 - val_dice_coef_necrotic: 0.5628 - val_loss: 0.3337 - val_mean_io_u: 0.8162 - val_precision: 0.9929 - val_sensitivity: 0.9927 - val_specificity: 0.9976 - learning_rate: 2.0000e-04
Epoch 25/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.7430 - dice_coef_edema: 0.6776 - dice_coef_enhancing: 0.6837 - dice_coef_necrotic: 0.6075 - loss: 0.2862 - mean_io_u: 0.8191 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981
Epoch 25: ReduceLROnPlateau reducing learning rate to 4.0000001899898055e-05.

Epoch 25: val_loss did not improve from 0.32962
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.7430 - dice_coef_edema: 0.6776 - dice_coef_enhancing: 0.6837 - dice_coef_necrotic: 0.6074 - loss: 0.2862 - mean_io_u: 0.8191 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 - val_dice_coef: 0.7024 - val_dice_coef_edema: 0.6070 - val_dice_coef_enhancing: 0.6545 - val_dice_coef_necrotic: 0.5497 - val_loss: 0.3390 - val_mean_io_u: 0.8068 - val_precision: 0.9927 - val_sensitivity: 0.9926 - val_specificity: 0.9976 - learning_rate: 2.0000e-04
Epoch 26/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 219ms/step - dice_coef: 0.7560 - dice_coef_edema: 0.7075 - dice_coef_enhancing: 0.6952 - dice_coef_necrotic: 0.6222 - loss: 0.2714 - mean_io_u: 0.8061 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981
Epoch 26: val_loss improved from 0.32962 to 0.32874, saving model to model_.26-0.328741.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.7560 - dice_coef_edema: 0.7075 - dice_coef_enhancing: 0.6953 - dice_coef_necrotic: 0.6221 - loss: 0.2714 - mean_io_u: 0.8061 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 - val_dice_coef: 0.7093 - val_dice_coef_edema: 0.6134 - val_dice_coef_enhancing: 0.6580 - val_dice_coef_necrotic: 0.5673 - val_loss: 0.3287 - val_mean_io_u: 0.8088 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 4.0000e-05
Epoch 27/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.7469 - dice_coef_edema: 0.6778 - dice_coef_enhancing: 0.6966 - dice_coef_necrotic: 0.6098 - loss: 0.2840 - mean_io_u: 0.8076 - precision: 0.9939 - sensitivity: 0.9937 - specificity: 0.9980
Epoch 27: val_loss did not improve from 0.32874
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 286ms/step - dice_coef: 0.7469 - dice_coef_edema: 0.6779 - dice_coef_enhancing: 0.6966 - dice_coef_necrotic: 0.6099 - loss: 0.2839 - mean_io_u: 0.8076 - precision: 0.9939 - sensitivity: 0.9938 - specificity: 0.9980 - val_dice_coef: 0.7096 - val_dice_coef_edema: 0.6168 - val_dice_coef_enhancing: 0.6560 - val_dice_coef_necrotic: 0.5669 - val_loss: 0.3299 - val_mean_io_u: 0.8105 - val_precision: 0.9928 - val_sensitivity: 0.9927 - val_specificity: 0.9976 - learning_rate: 4.0000e-05
Epoch 28/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.7599 - dice_coef_edema: 0.7115 - dice_coef_enhancing: 0.7222 - dice_coef_necrotic: 0.6048 - loss: 0.2670 - mean_io_u: 0.8077 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982
Epoch 28: val_loss improved from 0.32874 to 0.32720, saving model to model_.28-0.327196.weights.h5
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 290ms/step - dice_coef: 0.7599 - dice_coef_edema: 0.7115 - dice_coef_enhancing: 0.7221 - dice_coef_necrotic: 0.6049 - loss: 0.2670 - mean_io_u: 0.8077 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982 - val_dice_coef: 0.7108 - val_dice_coef_edema: 0.6144 - val_dice_coef_enhancing: 0.6611 - val_dice_coef_necrotic: 0.5694 - val_loss: 0.3272 - val_mean_io_u: 0.8116 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 4.0000e-05
Epoch 29/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - dice_coef: 0.7409 - dice_coef_edema: 0.6850 - dice_coef_enhancing: 0.6793 - dice_coef_necrotic: 0.5991 - loss: 0.2881 - mean_io_u: 0.8102 - precision: 0.9941 - sensitivity: 0.9940 - specificity: 0.9980
Epoch 29: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 67s 285ms/step - dice_coef: 0.7409 - dice_coef_edema: 0.6851 - dice_coef_enhancing: 0.6794 - dice_coef_necrotic: 0.5992 - loss: 0.2881 - mean_io_u: 0.8102 - precision: 0.9941 - sensitivity: 0.9940 - specificity: 0.9980 - val_dice_coef: 0.7099 - val_dice_coef_edema: 0.6140 - val_dice_coef_enhancing: 0.6583 - val_dice_coef_necrotic: 0.5686 - val_loss: 0.3297 - val_mean_io_u: 0.8175 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 4.0000e-05
Epoch 30/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.7631 - dice_coef_edema: 0.7128 - dice_coef_enhancing: 0.7037 - dice_coef_necrotic: 0.6356 - loss: 0.2641 - mean_io_u: 0.8152 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982
Epoch 30: ReduceLROnPlateau reducing learning rate to 8.000000525498762e-06.

Epoch 30: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 290ms/step - dice_coef: 0.7630 - dice_coef_edema: 0.7127 - dice_coef_enhancing: 0.7037 - dice_coef_necrotic: 0.6356 - loss: 0.2642 - mean_io_u: 0.8152 - precision: 0.9945 - sensitivity: 0.9944 - specificity: 0.9982 - val_dice_coef: 0.7084 - val_dice_coef_edema: 0.6103 - val_dice_coef_enhancing: 0.6579 - val_dice_coef_necrotic: 0.5670 - val_loss: 0.3310 - val_mean_io_u: 0.8180 - val_precision: 0.9930 - val_sensitivity: 0.9929 - val_specificity: 0.9977 - learning_rate: 4.0000e-05
Epoch 31/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 226ms/step - dice_coef: 0.7635 - dice_coef_edema: 0.6985 - dice_coef_enhancing: 0.7057 - dice_coef_necrotic: 0.6486 - loss: 0.2667 - mean_io_u: 0.8157 - precision: 0.9938 - sensitivity: 0.9937 - specificity: 0.9979
Epoch 31: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 294ms/step - dice_coef: 0.7634 - dice_coef_edema: 0.6985 - dice_coef_enhancing: 0.7057 - dice_coef_necrotic: 0.6485 - loss: 0.2667 - mean_io_u: 0.8157 - precision: 0.9938 - sensitivity: 0.9937 - specificity: 0.9979 - val_dice_coef: 0.7110 - val_dice_coef_edema: 0.6160 - val_dice_coef_enhancing: 0.6595 - val_dice_coef_necrotic: 0.5699 - val_loss: 0.3279 - val_mean_io_u: 0.8167 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 8.0000e-06
Epoch 32/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.7635 - dice_coef_edema: 0.7257 - dice_coef_enhancing: 0.7242 - dice_coef_necrotic: 0.6023 - loss: 0.2614 - mean_io_u: 0.8148 - precision: 0.9949 - sensitivity: 0.9948 - specificity: 0.9983
Epoch 32: ReduceLROnPlateau reducing learning rate to 1.6000001778593287e-06.

Epoch 32: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 288ms/step - dice_coef: 0.7635 - dice_coef_edema: 0.7256 - dice_coef_enhancing: 0.7241 - dice_coef_necrotic: 0.6024 - loss: 0.2615 - mean_io_u: 0.8148 - precision: 0.9949 - sensitivity: 0.9948 - specificity: 0.9983 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6159 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5710 - val_loss: 0.3275 - val_mean_io_u: 0.8169 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 8.0000e-06
Epoch 33/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step - dice_coef: 0.7537 - dice_coef_edema: 0.6975 - dice_coef_enhancing: 0.6907 - dice_coef_necrotic: 0.6266 - loss: 0.2746 - mean_io_u: 0.8166 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981
Epoch 33: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 287ms/step - dice_coef: 0.7537 - dice_coef_edema: 0.6975 - dice_coef_enhancing: 0.6908 - dice_coef_necrotic: 0.6266 - loss: 0.2746 - mean_io_u: 0.8166 - precision: 0.9942 - sensitivity: 0.9941 - specificity: 0.9981 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6160 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5709 - val_loss: 0.3276 - val_mean_io_u: 0.8169 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 1.6000e-06
Epoch 34/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 221ms/step - dice_coef: 0.7608 - dice_coef_edema: 0.7112 - dice_coef_enhancing: 0.7124 - dice_coef_necrotic: 0.6198 - loss: 0.2674 - mean_io_u: 0.8151 - precision: 0.9942 - sensitivity: 0.9940 - specificity: 0.9981
Epoch 34: ReduceLROnPlateau reducing learning rate to 1e-06.

Epoch 34: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 68s 290ms/step - dice_coef: 0.7608 - dice_coef_edema: 0.7112 - dice_coef_enhancing: 0.7124 - dice_coef_necrotic: 0.6199 - loss: 0.2674 - mean_io_u: 0.8151 - precision: 0.9942 - sensitivity: 0.9940 - specificity: 0.9981 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6162 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5709 - val_loss: 0.3276 - val_mean_io_u: 0.8168 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 1.6000e-06
Epoch 35/35
235/235 ━━━━━━━━━━━━━━━━━━━━ 0s 225ms/step - dice_coef: 0.7601 - dice_coef_edema: 0.7063 - dice_coef_enhancing: 0.6862 - dice_coef_necrotic: 0.6484 - loss: 0.2687 - mean_io_u: 0.8157 - precision: 0.9941 - sensitivity: 0.9939 - specificity: 0.9980
Epoch 35: val_loss did not improve from 0.32720
235/235 ━━━━━━━━━━━━━━━━━━━━ 69s 296ms/step - dice_coef: 0.7602 - dice_coef_edema: 0.7063 - dice_coef_enhancing: 0.6863 - dice_coef_necrotic: 0.6484 - loss: 0.2687 - mean_io_u: 0.8157 - precision: 0.9941 - sensitivity: 0.9939 - specificity: 0.9980 - val_dice_coef: 0.7113 - val_dice_coef_edema: 0.6162 - val_dice_coef_enhancing: 0.6597 - val_dice_coef_necrotic: 0.5709 - val_loss: 0.3276 - val_mean_io_u: 0.8168 - val_precision: 0.9929 - val_sensitivity: 0.9928 - val_specificity: 0.9976 - learning_rate: 1.0000e-06
In [ ]:
# Save the model
model.save("my_model.keras")

Load The Trained Model¶

In [ ]:
history_dict = history.history

# To see what was tracked
print(history_dict.keys())

# Extract metrics
custom_metric_keys = [
    "dice_coef",
    "precision",
    "sensitivity",
    "specificity",
    "dice_coef_necrotic",
    "dice_coef_edema",
    "dice_coef_enhancing",
    "mean_io_u", 
]

# Print header
print("\n Final Custom Training Metrics")
print("=" * 40)

# Loop and print metrics if they exist in history
for key in custom_metric_keys:
    if key in history_dict:
        # Get the last value in the list
        value = history_dict[key][-1]
        print(f"{key:<25}: {value:.4f}")
    else:
        print(f"{key:<25}: [not tracked]")
In [ ]:
history_dict = history.history

# To see what was tracked
print(history_dict.keys())

# Extract metrics
custom_metric_keys = [
    "dice_coef",
    "precision",
    "sensitivity",
    "specificity",
    "dice_coef_necrotic",
    "dice_coef_edema",
    "dice_coef_enhancing",
    "mean_io_u", 
]

# Print header
print("\n Final Custom Training Metrics")
print("=" * 40)

# Loop and print metrics if they exist in history
for key in custom_metric_keys:
    if key in history_dict:
        # Get the last value in the list
        value = history_dict[key][-1]
        print(f"{key:<25}: {value:.4f}")
    else:
        print(f"{key:<25}: [not tracked]")
dict_keys(['dice_coef', 'dice_coef_edema', 'dice_coef_enhancing', 'dice_coef_necrotic', 'loss', 'mean_io_u', 'precision', 'sensitivity', 'specificity', 'val_dice_coef', 'val_dice_coef_edema', 'val_dice_coef_enhancing', 'val_dice_coef_necrotic', 'val_loss', 'val_mean_io_u', 'val_precision', 'val_sensitivity', 'val_specificity', 'learning_rate'])

 Final Custom Training Metrics
========================================
dice_coef                : 0.7609
precision                : 0.9943
sensitivity              : 0.9942
specificity              : 0.9981
dice_coef_necrotic       : 0.6285
dice_coef_edema          : 0.7100
dice_coef_enhancing      : 0.7049
mean_io_u                : 0.8153
In [ ]:
# Define custom metrics as functions and classes (not instantiated objects)

custom_metrics = {
    "dice_coef": dice_coef,
    "precision": precision,
    "sensitivity": sensitivity,
    "specificity": specificity,
    "dice_coef_necrotic": dice_coef_necrotic,
    "dice_coef_edema": dice_coef_edema,
    "dice_coef_enhancing": dice_coef_enhancing,
    "mean_io_u": MeanIoU(num_classes=4, name="mean_io_u")
}



# Load the model with custom objects
model = load_model("/content/my_model.keras", custom_objects=custom_metrics, compile=False)
In [ ]:
# visualizing the training progress of U-Net model over time
## Load training history from CSV
history = pd.read_csv('/content/training.log', sep=',', engine='python')
epochs = range(len(history))
# Define plot colors
train_color = '#0e46a1'
val_color = '#cc6a14'

# Define reusable plot function
def plot_metric(ax, history, train_key, val_key, title, ylabel):
    if train_key in history and val_key in history:
        ax.plot(epochs, history[train_key], color=train_color, label='Training')
        ax.plot(epochs, history[val_key], color=val_color, label='Validation')
        ax.set_title(title)
        ax.set_xlabel('Epochs')
        ax.set_ylabel(ylabel)
        ax.legend()
    else:
        ax.set_title(f"{title} (Not Found)")
        ax.axis('off')

# Create 1x4 subplot layout
fig, axes = plt.subplots(1, 3, figsize=(22, 5))
# Plot metrics using safe function
plot_metric(axes[0], history, 'loss', 'val_loss', 'Loss', 'Loss')
plot_metric(axes[1], history, 'dice_coef', 'val_dice_coef', 'Dice Coefficient', 'Dice')
plot_metric(axes[2], history, 'mean_io_u', 'val_mean_io_u', 'Mean IoU', 'IoU')
fig.suptitle('Training History of U-Net Model', fontsize=16, y=1.08)
# Adjusts the spacing between subplots
plt.tight_layout()
plt.show()
In [ ]:
# visualizing the training progress of U-Net model over time
## Load training history from CSV
history = pd.read_csv('/content/training.log', sep=',', engine='python')
epochs = range(len(history))
# Define plot colors
train_color = '#0e46a1'
val_color = '#cc6a14'

# Define reusable plot function
def plot_metric(ax, history, train_key, val_key, title, ylabel):
    if train_key in history and val_key in history:
        ax.plot(epochs, history[train_key], color=train_color, label='Training')
        ax.plot(epochs, history[val_key], color=val_color, label='Validation')
        ax.set_title(title)
        ax.set_xlabel('Epochs')
        ax.set_ylabel(ylabel)
        ax.legend()
    else:
        ax.set_title(f"{title} (Not Found)")
        ax.axis('off')

# Create 1x4 subplot layout
fig, axes = plt.subplots(1, 3, figsize=(22, 5))
# Plot metrics using safe function
plot_metric(axes[0], history, 'loss', 'val_loss', 'Loss', 'Loss')
plot_metric(axes[1], history, 'dice_coef', 'val_dice_coef', 'Dice Coefficient', 'Dice')
plot_metric(axes[2], history, 'mean_io_u', 'val_mean_io_u', 'Mean IoU', 'IoU')
fig.suptitle('Training History of U-Net Model', fontsize=16, y=1.08)
# Adjusts the spacing between subplots
plt.tight_layout()
plt.show()
No description has been provided for this image
In [ ]:
custom_metric_keys = [
    "dice_coef", "precision", "sensitivity", "specificity",
    "dice_coef_necrotic", "dice_coef_edema", "dice_coef_enhancing",
    "mean_io_u"
]

print("\n Final Custom Training Metrics (from CSV)")
print("=" * 50)

for key in custom_metric_keys:
    if key in history.columns:
        print(f"{key:<25}: {history[key].iloc[-1]:.4f}")
    else:
        print(f"{key:<25}: [not tracked]")
 Final Custom Training Metrics (from CSV)
==================================================
dice_coef                : 0.7609
precision                : 0.9943
sensitivity              : 0.9942
specificity              : 0.9981
dice_coef_necrotic       : 0.6285
dice_coef_edema          : 0.7100
dice_coef_enhancing      : 0.7049
mean_io_u                : 0.8153

Visualization Some Samples¶

In [ ]:
# Ensure don't exceed the available slices in the 3D scan
def get_safe_volume_slices(volume):
    # volume.shape[2] is the number of slices
    return min(volume_slices, volume.shape[2] - start_volume)
    
# Load a 3D MRI scan from a NIfTI file
def image_loader(path):
    return np.array(nib.load(path).get_fdata())

# Predict tumor segmentation for a case using flair + t1ce scans
def predict_by_path(case_path, case_id):
    flair = image_loader(os.path.join(case_path, f'BraTS20_Training_{case_id}_flair.nii'))
    t1ce = image_loader(os.path.join(case_path, f'BraTS20_Training_{case_id}_t1ce.nii'))

    # Prevents indexing beyond the number of available slices
    safe_slices = get_safe_volume_slices(flair)
    X = np.empty((safe_slices, img_size, img_size, 2))

    # Extracts the 2D image slice from FLAIR and T1CE
    for j in range(safe_slices):
        X[j, :, :, 0] = cv2.resize(flair[:, :, j + start_volume], (img_size, img_size))
        X[j, :, :, 1] = cv2.resize(t1ce[:, :, j + start_volume], (img_size, img_size))

    # Normalizes the input 
    # verbose=1 shows a progress bar during prediction
    return model.predict(X / np.max(X), verbose=1)
In [ ]:
# Display original flair, ground truth, and model predictions for a given case and slice
def show_predicts_by_id(case_id, start_slice=60):
    path = os.path.join(dataset_path, f'BraTS20_Training_{case_id}')
    # Load images
    flair = image_loader(os.path.join(path, f'BraTS20_Training_{case_id}_flair.nii'))
    ground_truth = image_loader(os.path.join(path, f'BraTS20_Training_{case_id}_seg.nii'))
    prediction = predict_by_path(path, case_id)
    # Extract individual segmentation classes
    core = prediction[:, :, :, 1]
    edema = prediction[:, :, :, 2]
    enhancing = prediction[:, :, :, 3]
    slice_idx = start_slice + start_volume
    base_flair = cv2.resize(flair[:, :, slice_idx], (img_size, img_size))
    fig, axes = plt.subplots(1, 6, figsize=(24, 6))
    for ax in axes:
        ax.imshow(base_flair, cmap='gray')
    axes[0].set_title('Original Flair')
    # INTER_NEAREST : Picks the value of the nearest pixel and aplpha : Able to see the underlying image
    axes[1].imshow(cv2.resize(ground_truth[:, :, slice_idx], (img_size, img_size), interpolation=cv2.INTER_NEAREST), cmap='Reds', alpha=0.4)
    axes[1].set_title('Ground Truth')
    axes[2].imshow(prediction[start_slice, :, :, 1:4].sum(axis=-1), cmap='Reds', alpha=0.4)
    axes[2].set_title('All Classes')
    axes[3].imshow(edema[start_slice], cmap='OrRd', alpha=0.4)
    axes[3].set_title(f'{segmentation_class[2]}')
    axes[4].imshow(core[start_slice], cmap='OrRd', alpha=0.4)
    axes[4].set_title(f'{segmentation_class[1]}')
    axes[5].imshow(enhancing[start_slice], cmap='OrRd', alpha=0.4)
    axes[5].set_title(f'{segmentation_class[3]}')
    plt.tight_layout()
    plt.show()
In [ ]:
show_predicts_by_id(case_id='210', start_slice=77)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step
No description has been provided for this image
In [ ]:
show_predicts_by_id(case_id='098', start_slice=77)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step
No description has been provided for this image
In [ ]:
def predict_segmentation(patient_path):
    """Predicts the tumor segmentation for a given patient's MRI scans."""
    t1ce_path = patient_path + '_t1ce.nii'
    flair_path = patient_path + '_flair.nii'

    # Load MRI scans
    t1ce_scan = image_loader(t1ce_path)
    flair_scan = image_loader(flair_path)

    # Get safe slice count
    safe_slices = get_safe_volume_slices(flair_scan)

    # Create an empty array for model input
    X = np.empty((safe_slices, img_size, img_size, 2))

    # Resize slices to match the model's expected input shape
    for j in range(safe_slices):
        X[j, :, :, 0] = cv2.resize(flair_scan[:, :, j + start_volume], (img_size, img_size))
        X[j, :, :, 1] = cv2.resize(t1ce_scan[:, :, j + start_volume], (img_size, img_size))

    # Normalize input and make predictions
    return model.predict(X / np.max(X), verbose=1)

def show_predicted_segmentations(samples_list, slice_index, cmap, norm):
    """Displays the original ground truth segmentation and predicted segmentations."""
    # Select a random patient sample
    selected_sample = random.choice(samples_list)

    # Construct full path to patient's MRI scans
    patient_path = os.path.join(dataset_path, selected_sample, selected_sample)

    # Predict segmentation for the selected patient
    predicted_segmentation = predict_segmentation(patient_path)

    # Load ground truth segmentation
    ground_truth_path = patient_path + '_seg.nii'
    ground_truth = image_loader(ground_truth_path)

    # Get the total number of slices
    total_slices = ground_truth.shape[2]

    # Ensure `slice_index` does not exceed available slices
    if slice_index + start_volume >= total_slices:
        slice_index = total_slices - start_volume - 1  # Set to the last valid slice

    # Resize ground truth segmentation
    ground_truth_resized = cv2.resize(ground_truth[:, :, slice_index + start_volume],
                                      (img_size, img_size), interpolation=cv2.INTER_NEAREST)

    # Extract different segmentation components
    predicted_all = predicted_segmentation[slice_index, :, :, 1:4]  # All tumor classes
    predicted_background = predicted_segmentation[slice_index, :, :, 0]  # Background
    predicted_core = predicted_segmentation[slice_index, :, :, 1]  # Core tumor
    predicted_edema = predicted_segmentation[slice_index, :, :, 2]  # Edema
    predicted_enhancing = predicted_segmentation[slice_index, :, :, 3]  # Enhancing tumor

    # Display original and predicted segmentations
    print("Patient ID:", selected_sample)
    fig, axes = plt.subplots(1, 6, figsize=(25, 20))

    # Ground truth segmentation
    axes[0].imshow(ground_truth_resized, cmap=cmap, norm=norm)
    axes[0].set_title('Ground Truth Segmentation')

    # All predicted tumor classes
    axes[1].imshow(predicted_all, cmap=cmap, norm=norm)
    axes[1].set_title('All Classes')

    # Background prediction
    axes[2].imshow(predicted_background)
    axes[2].set_title('Not Tumor')

    # Core tumor prediction
    axes[3].imshow(predicted_core)
    axes[3].set_title('Core')

    # Edema prediction
    axes[4].imshow(predicted_edema)
    axes[4].set_title('Edema')

    # Enhancing tumor prediction
    axes[5].imshow(predicted_enhancing)
    axes[5].set_title('Enhancing')

    # Adjust subplot spacing
    plt.subplots_adjust(wspace=0.8)
    plt.show()
In [ ]:
# Sample
show_predicted_segmentations(test_ids, 60, cmap, norm)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step
Patient ID: BraTS20_Training_114
No description has been provided for this image
In [ ]:
# Sample
show_predicted_segmentations(test_ids, 60, cmap, norm)
4/4 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step
Patient ID: BraTS20_Training_264
No description has been provided for this image

Testing¶

In [ ]:
# Cheching
import os
print([f for f in os.listdir() if f.endswith(".weights.h5")])
['model_.07-0.557503.weights.h5', 'model_.01-0.853152.weights.h5', 'model_.23-0.329619.weights.h5', 'model_.28-0.327196.weights.h5', 'model_.12-0.423160.weights.h5', 'model_.26-0.328741.weights.h5', 'model_.03-0.737972.weights.h5', 'model_.04-0.665222.weights.h5', 'model_.15-0.395521.weights.h5', 'model_.19-0.358123.weights.h5', 'model_.05-0.627692.weights.h5', 'model_.16-0.387587.weights.h5', 'model_.22-0.336055.weights.h5', 'model_.11-0.441615.weights.h5', 'model_.09-0.468233.weights.h5', 'model_.18-0.366215.weights.h5', 'model_.02-0.775888.weights.h5', 'model_.13-0.405229.weights.h5', 'model_.08-0.515393.weights.h5']

Evaluation¶

In [ ]:
# Checking
print(type(test_generator))
<class '__main__.DataGenerator'>
In [ ]:
# Compile the model with the same loss and metrics used during training
model.compile(
    loss=combined_loss,
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
    metrics=[
        tf.keras.metrics.MeanIoU(num_classes=4, name="mean_io_u"),
        dice_coef,
        precision,
        sensitivity,
        specificity,
        dice_coef_necrotic,
        dice_coef_edema,
        dice_coef_enhancing
    ]
)

# Evaluate on training set
results = model.evaluate(training_generator, verbose=1)

eval_param = [
              "Loss",
              "MeanIOU",
              "Dice coefficient",
              "Precision",
              "Sensitivity",
              "Specificity",
              "Dice coef Necrotic",
              "Dice coef Edema",
              "Dice coef Enhancing"
              ]

# Combine results list and eval_param list
results_list = zip(results, eval_param)

# Display each metric with its eval_param
print("\n Model evaluation on the test set:")
for i, (metric, eval_param) in enumerate(results_list):
    print(f"{eval_param} : {round(metric, 4)}")
235/235 ━━━━━━━━━━━━━━━━━━━━ 54s 215ms/step - dice_coef: 0.7542 - dice_coef_edema: 0.6991 - dice_coef_enhancing: 0.6955 - dice_coef_necrotic: 0.6220 - loss: 0.2749 - mean_io_u: 0.8137 - precision: 0.9940 - sensitivity: 0.9939 - specificity: 0.9980

 Model evaluation on the test set:
Loss : 0.2668
MeanIOU : 0.8153
Dice coefficient : 0.7609
Precision : 0.9943
Sensitivity : 0.9942
Specificity : 0.9981
Dice coef Necrotic : 0.6286
Dice coef Edema : 0.7101
Dice coef Enhancing : 0.7049
In [ ]:
# Compile the model with the same loss and metrics used during training
model.compile(
    loss="categorical_crossentropy",
    optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
    metrics=[
        tf.keras.metrics.MeanIoU(num_classes=4, name="mean_io_u"),
        dice_coef,
        precision,
        sensitivity,
        specificity,
        dice_coef_necrotic,
        dice_coef_edema,
        dice_coef_enhancing
    ]
)

# Evaluate on training set
results = model.evaluate(training_generator, verbose=1)

eval_param = [
              "Loss",
              "MeanIOU",
              "Dice coefficient",
              "Precision",
              "Sensitivity",
              "Specificity",
              "Dice coef Necrotic",
              "Dice coef Edema",
              "Dice coef Enhancing"
              ]
In [ ]:
# Combine results list and eval_param list
results_list = zip(results, eval_param)

# Display each metric with its eval_param
print("\n Model evaluation on the test set:")
for i, (metric, eval_param) in enumerate(results_list):
    print(f"{eval_param} : {round(metric, 4)}")
235/235 ━━━━━━━━━━━━━━━━━━━━ 53s 213ms/step - dice_coef: 0.7574 - dice_coef_edema: 0.7086 - dice_coef_enhancing: 0.6895 - dice_coef_necrotic: 0.6312 - loss: 0.0276 - mean_io_u: 0.8156 - precision: 0.9943 - sensitivity: 0.9942 - specificity: 0.9981

 Model evaluation on the test set:
Loss : 0.0272
MeanIOU : 0.8153
Dice coefficient : 0.7609
Precision : 0.9943
Sensitivity : 0.9942
Specificity : 0.9981
Dice coef Necrotic : 0.6286
Dice coef Edema : 0.7101
Dice coef Enhancing : 0.7049